0

我正在尝试将 JSON 格式的列表读入 Android Java。

可以 使用getJSONarray(). _ 但无法读取messageemail的值。

似乎 getJSONarray() 不适用于我想要的。

是的,我正在使用getJSONObject儿童提取信息。但是在获取消息数组后如何提取单个值?

{
  "children": [{
    "message": ["message1","message2","message3"],
    "email": ["email1",
              "email2"]
  }, {
    "message": ["message1", "message2", "message3"],
    "email": ["email1", "email2"]
  }]
}

我知道如何从中提取:

  {
      "children": [{
                     "message1": "message___1"
                     "message2": "message___2"
                     "message3": "message___3"

          }]
}

但不是当它全部在一个列表中时。

4

2 回答 2

1

一旦你有了JSONArray“孩子”,你需要做的就是像这样一个一个地提取个体JSONObjects

for (int counter = 0; counter < childArray.length(); counter++) { 
    //Get the next item
    JSONObject nextobj = childArray.getJSONObject(counter);

然后,您可以从nextobj变量中提取消息和电子邮件数组。这是因为您的“孩子”无法直接访问每个“消息”和“电子邮件” JSONArray,它们被包裹在JSONObjects

于 2013-04-22T11:12:44.920 回答
0

试试下面的代码:

for(int i=0; i<childrenArray.length(); i++)
{
JSONObject childObj=childrenArray.getJSONObject(i);
JSONArray messageArray=childObj.getJSONArray("message");
    for(int j=0; j<messageArray.length();j++
        {
            //here get value from messageArray.getString(j) or messageArray.getJSONObject(j), whichever applicable
        }

JSONArray emailArray=childObj.getJSONArray("email");
    for(int k=0; k<emailArray.length();k++
        {
            //here get value from emailArray.getString(k) or emailArray.getJSONObject(k), whichever applicable
        }

}
于 2013-04-22T11:33:21.597 回答