繁体   English   中英

在Java for Android中解析JSON数据

[英]Parsing JSON data in Java for Android

我希望有人可以帮助我。 我正在尝试解析以下json文件:

{"seminar":[
    {"categoryid": "1","cpe": "13","inventory":["Discussion","Value x","Value y"
    ],"teachers": [
    {
        "titel": "Dipl.-Ing.",
        "company": "XY",
        "name": "Test",
        "id": "3",
    }
    ],

},...

我迷失在解析教师数据中...

...
private static final String TAG_teachers = "teachers";
private static final String TAG_TITLE = "title";

for(int i = 0; i < seminar.length(); i++){
    JSONObject c = seminar.getJSONObject(i);
    ...
    teachers = c.getJSONArray(TAG_DOZENTEN);
    for(int z = 0; z < teachers.length(); z++){                 
    JSONObject d = teachers.getJSONObject(z);
    String title  = d.getString(TAG_TITLE);
    Log.d("JSONParsingActivity", title);

我收到错误System.err(1010):org.json.JSONException:类型为org.json.JSONObject $ 1的教师的值null无法转换为JSONArray。

我做错了什么? 据我从JSON文档了解,教师是JSON数组,而不是对象。 有人可以帮助我吗?

您的教师中有一个额外的(尾随)逗号(“ 3”之后)。 不允许在JSON中使用。 删除它,看看是否有帮助。

如果您的JSON确实是以下形式:

{ ... }, { ... }, { ... }, ...

这是无效的JSON

根附件必须是单个对象(在{} )或数组(在[] )。

如果您打算发送对象数组,则只需用方括号将整个对象包装成一个数组,然后从中创建一个JSONArray对象。

所以一定是这样

[ { ... }, { ... }, { ... }, ... ]

您还需要确保没有多余的逗号,不加括号的括号等。使用JSONLint或其他类似的JSON格式检查器可以节省一些时间来查找语法问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM