微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么json解析器程序找不到数组?

如何解决为什么json解析器程序找不到数组?

请帮我理解为什么这个java程序没有从json文件中找到数组。我没有通过谷歌找到类似类型的 json 文件,所以请教我。

错误

C:\temp\example.json
org.json.JSONException: JSONObject["result"] not found.
    at org.json.JSONObject.get(JSONObject.java:572)
    at org.json.JSONObject.getJSONArray(JSONObject.java:765)
    at JsonParsingMachine.main(JsonParsingMachine.java:17)

.java 内容

import java.io.FileReader;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

import org.json.*;

public class JsonParsingMachine {

    public static void main(String[] args) {
        String tiedosto = "C:/temp/example.json";

        System.out.println(Paths.get(tiedosto));
        try {
            String contents = new String((Files.readAllBytes(Paths.get(tiedosto))));
            JSONObject o = new JSONObject(contents);
            JSONArray res = o.getJSONArray("result");

            for (int i = 0; i < res.length(); i++) {
                System.out.println();
            }
        } catch (Exception e) {
            e.printstacktrace();
        }
    }
}

json 文件(example.json)

{
  "quoteResponse" : {
    "result" : [ {
      "language" : "en-US","region" : "US","quoteType" : "EQUITY","quoteSourceName" : "Nasdaq Real Time Price","triggerable" : true
    } ]
  }
}

解决方法

result 数组在 quoteResponse JSONObject 内。你需要这样做:

JSONObject o = new JSONObject(contents);
JSONObject quoteResponse = o.getJSONObject("quoteResponse");
JSONArray res = quoteResponse.getJSONArray("result");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。