gpt4 book ai didi

android - 在android中解析没有键的json数组

转载 作者:行者123 更新时间:2023-11-29 14:14:18 24 4
gpt4 key购买 nike

我可以解析这个 json,存储在一个名为 json 的字符串中。

{
"contacts": [
{
"id": "c200",
"name": "Ravi Tamada",
"email": "ravi@gmail.com",
},
{
"id": "c201",
"name": "Johnny Depp",
"email": "johnny_depp@gmail.com",
}
]
}

在 Android 中使用此代码:

JSONObject object = new JSONObject(json);
JSONArray ob = object.getJSONArray("contacts");

问题是我想解析相同的 JSON 数组但没有键或名称“联系人”,如下所示:

{
[
{
"id": "c200",
"name": "Ravi Tamada",
"email": "ravi@gmail.com",
},
{
"id": "c201",
"name": "Johnny Depp",
"email": "johnny_depp@gmail.com",
}
]
}

getJSONArray() 方法需要数组的名称,但在本例中它没有。可以解析这个还是Json语法不对?

最佳答案

getJSONArray 需要一个名称,因为根据 the JSON spec :

An object is an unordered collection of zero or more name/valuepairs, where a name is a string and a value is a string, number,boolean, null, object, or array.

因此,没有 API 可以获取没有名称的数组(或任何其他类型),因为那没有任何意义。您在问题中定义的对象没有名称,只有一个值,因此无效。

如果您只想向下传递数组,请删除大括号 - 您的 JSON 应如下所示:

 [
{
"id": "c200",
"name": "Ravi Tamada",
"email": "ravi@gmail.com"
},
{
"id": "c201",
"name": "Johnny Depp",
"email": "johnny_depp@gmail.com"
}
]

没有理由使用 jackson 。你可以像这样解析上面的字符串:

JSONArray contactArray = new JSONArray(json);

关于android - 在android中解析没有键的json数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29355249/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com