data.json,请注意dup关键城市
{
"type": "1",
"city": [
{
"name": "c1",
"dis": [
{
"dis_name": "d1"
},
{
"dis_name": "d2"
}
]
}
],
"city": [
{
"name": "c2",
"dis": [
{
"dis_name": "d3"
},
{
"dis_name": "d2"
}
]
}
]
}
我认为,由于存在dup键,因此从文件中构建的JSON对象不正确或具有部分数据。
JSONObject obj = new JSONObject(readJSONFromAsset());
从堆栈溢出复制的readJSONFromAsset()
public String readJSONFromAsset() {
String json = null;
try {
InputStream is = getAssets().open("data.json");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
return json;
}
在obj中,我仅看到json文件的部分数据。在json文件/对象中添加以下新条目的最佳方法是什么?
"city": [
{
"name": "c3",
"dis": [
{
"dis_name": "d5"
},
{
"dis_name": "d2"
}
]
}
]
答案 0 :(得分:1)
那不是有效的json文档。有效的json不能有重复的密钥。尝试将其视为JSON时会发生什么情况取决于您的反序列化器选择如何实现它-它可能会引发异常,保留第一个或保留最后一个作为常见选择。
唯一有效的答案是修复您的数据,以便它是有效的json文档。我建议将城市变成一个数组。