【问题标题】:JSON parsing error, android?JSON解析错误,android?
【发布时间】:2014-05-23 06:31:21
【问题描述】:

我有以下 JSON

{"DistributorDealerList":
{[{"Id":2,
"Name":"Distributor1",
"Dealer":
[{"Id":"1",
"Name":"Dealer1"},
{"Id":"2","
Name":"Dealer2"}]},
{"Id":4,"Name":"Distributor2",
"Dealer":
[{"Id":"3",
"Name":"Dealer3"}]}]}

当我解析 JSON 时得到以下异常

   org.json.JSONException: Names must be strings, but [{"Name":"Distributor1",
  "Dealer":[{"Name":"Dealer1","Id":"1"},{"Name":"Dealer2","Id":"2"}],"Id":2},
  {"Name":"Distributor2","Dealer":[{"Name":"Dealer3","Id":"3"}],"Id":4}] is of 
type org.json.JSONArray at character 195 of {"DistributorDealerList":
{[{"Id":2,"Name":"Distributor1","Dealer":[{"Id":"1","Name":"Dealer1"},
{"Id":"2","Name":"Dealer2"}]},{"Id":4,"Name":"Distributor2","Dealer":
 [{"Id":"3","Name":"Dealer3"}]}]}

这里是我的解析代码:

        try {
                JSONObject jsonObj = new JSONObject(apiResult);

                // Getting JSON Array node
                JSONArray contacts = jsonObj
                        .getJSONArray("DistributorDealerList");

                // looping through All Contacts
                for (int i = 0; i < contacts.length(); i++) {
                    JSONObject c = contacts.getJSONObject(i);

                    String distId = c.getString("Id");
                    String distName = c.getString("Name");

                    JSONObject phone = c.getJSONObject("Dealer");
                    String distDealerID = phone.getString("Id");
                    String distDealerName = phone.getString("Name");            

                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

它说我必须提供 JSON Araay 名称。虽然我提供它,但仍然是例外。这里有什么问题。

【问题讨论】:

  • 您提供的 JSON 错误。尝试json.parser.online.fr 检查提供的 JSON 的问题。
  • 如果您查看 Json,它以 {{[ (object,object,array) 开头并以 }]} 结尾,这些不匹配。

标签: android json jsonexception


【解决方案1】:

感谢@Sufian

http://json.parser.online.fr/

这确实解决了我的问题

【讨论】:

    【解决方案2】:

    你应该改变你的 json。您的 json 数据的 id 参数没有 " 字符; 控制您的 id 参数。

    {"DistributorDealerList":
    {[{"Id":"2",
    "Name":"Distributor1",
    "Dealer":
    [{"Id":"1",
    "Name":"Dealer1"},
    {"Id":"2","
    Name":"Dealer2"}]},
    {"Id":"4","Name":"Distributor2",
    "Dealer":
    [{"Id":"3",
    "Name":"Dealer3"}]}]}
    

    【讨论】:

      【解决方案3】:

      你提供的json是错误的。 我已经解决了你的 json 字符串中的错误

      你可以从http://pastie.org/private/1xbyzgamzihswnpgtz15yw得到这个正确的json字符串

      您可以使用此 url 验证此 json 字符串: http://jsonviewer.stack.hu/

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多