Kev*_*ven 5 java android dynamic gson
我是java/Android的初学者,我尝试用Gson解析JSON.
我对文件部分有些困难.根据我的阅读,我应该使用MapHash,但我不确定如何在此代码中使用它
这是我的主课
InputStream source = retrieveStream(url);
Gson gson = new Gson();
Reader reader = new InputStreamReader(source);
SearchResponse response = gson.fromJson(reader, SearchResponse.class);
进行解析的类
public class SearchResponse {
    public List<Podcast> podcasts; 
    class Podcast {
        @SerializedName("files")
        private List<File> files;
        @SerializedName("format")
        private String format;
        @SerializedName("title")
        private String title;
    class File {
        private String ValueX;
        private String URLX;
        }
    }
}
json结构
{
"podcasts": [
    {
    "files": [
        {"NameA": "ValueA"},
        {"NameB": "ValueB"},
        {"...": "..."}
    ],
    "format": "STRING",
    "title": "STRING"
    }
    ]
}
谢谢你的帮助
这是一个编辑过的JSon结构文件我尝试解析 http://jsontest.web44.net/noauth.json
在你的File班级中你有2个属性:ValueX和URLX.但是在你的JSON中你有2个字段NameA并且NameB......
JSON响应中的名称和您的类必须匹配,否则您将无法获得任何值...
除此之外,你的班级结构看起来很好,你的deseralizing代码看起来也不错......我认为你不需要任何HashMap...
编辑:考虑到你的评论,你可以使用HashMap.您可以Podcast使用以下方法更改课程:
@SerializedName("files")
private List<Map<String,String>> files;
你应该正确解析它.
你必须使用a,List因为你有一个JSON数组(包围[ ]),然后你可以使用它Map来允许不同的字段名称.
请注意,您必须删除您的File班级...
| 归档时间: | 
 | 
| 查看次数: | 2320 次 | 
| 最近记录: |