【问题标题】:parse string array from JSON从 JSON 解析字符串数组
【发布时间】:2012-06-13 09:33:54
【问题描述】:

我有这个 JSON 对象:

{"error":null,
 "result":[{"id":"1234567890",
            "count":1,
            "recipients":
            ["u3848",
               "u8958",
               "u7477474"
            ],
            "dateCreated":"2012-06-13T09:13:45.989Z"
           }]
 }

我正在尝试找到一种方法将recipients 数组正确解析为String[] 对象。

有没有简单的方法可以做到这一点?

编辑:

找到了包含结果所需的所有内容的答案:Sending and Parsing JSON Objects

【问题讨论】:

标签: java json


【解决方案1】:

我想做的事情是这样的:

JSONArray temp = jsonObject.getJSONArray("name");
int length = temp.length();
if (length > 0) {
    String [] recipients = new String [length];
    for (int i = 0; i < length; i++) {
        recipients[i] = temp.getString(i);
    }
}

【讨论】:

  • “名称”属性是从哪里来的?您的原始帖子中没有任何内容。
  • name 属性需要预定义,因为 JSON 是键/值存储。
  • 对。 (我想知道,因为你回答了你自己的问题,那里没有钥匙。)因此应该是“收件人”而不是“姓名”。
【解决方案2】:

您可以尝试将 xstream 与 json 序列化程序一起使用。看看this link

【讨论】:

    【解决方案3】:

    我总是建议我最喜欢的库 json-lib 来处理 JSON 内容。

    你可以使用JSONArray转换成Object[],虽然不是String[],但是你仍然可以使用它,因为每个Object都有toString()方法。

    String sYourJsonString = "['u3848', 'u8958', 'u7477474']";
    Object[] arrayReceipients = JSONArray.toArray (JSONArray.fromObject(sYourJsonString));
    System.out.println (arrayReceipients [0]); // u3848
    

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-12
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多