【问题标题】:JSON extract values from keyJSON从键中提取值
【发布时间】:2017-03-09 22:21:58
【问题描述】:

我有一个字符串。我正在将其转换为 JSONOBJECT,并尝试根据键提取值。

JSON 字符串:

jsonString="
{
\"AREA\": [\"IT,SALES\"],
\"CITY\": [\"LA\",\"NORTH\"]
}";

我想要一个字符串中的“AREA”值和一个字符串中的 CITY。我试过了:

JSONObject jsonOb = new JSONObject("jsonString");
String area = jsonOb.getString("AREA");

但我无法以这种方式检索值。需要一些建议。

【问题讨论】:

  • 你叫什么“jsonString”?
  • @SegFault 更新了我的问题。对不起。 jsonString json 本身。
  • 所以你应该删除jsonString周围的",因为它是一个变量:new JSONObject(jsonString);

标签: java json


【解决方案1】:

您试图直接访问Area,而它是JSONArray 对象。

String json="{\"AREA\": [\"IT,SALES\"],\"CITY\": [\"LA\", \"NORTH\"]}";
JSONObject jsonOb = new JSONObject(json);
JSONArray arrJson=jsonOb.getJSONArray("AREA");

for(int i=0;i<arrJson.length();i++)
System.out.println(arrJson.getString(i));

【讨论】:

    【解决方案2】:
    JSONArray area = (JSONArray) jsonObject.get("AREA");
    Iterator<String> iterator = area.iterator();
    while (iterator.hasNext()) {
        System.out.println(iterator.next());
    }
    

    您应该获得一个 JSONArray 对象,然后您可以简单地迭代并构建适当的字符串(使用 StringBuilder)。

    您可以参考this article获取更多帮助。

    【讨论】:

    • 嗨@Alon Segal。谢谢回复。我在这里得到一个类型转换异常:“area.iterator();”
    【解决方案3】:

    您的数据有[],因此请使用getJSONArray("AREA"),您可以对其进行迭代。

    (具体的方法取决于你有什么库)

    【讨论】:

    • 我在这里使用 org.json 库。 @cricket_007
    • 好的,我认为那个方法是存在的。基本上,getString("AREA") 将尝试返回一个字符串,而不是您数据中的列表
    【解决方案4】:

    我相信这就是你所追求的:

        String jsonString = "{\"AREA\": [\"IT,SALES\"],\"CITY\": [\"LA\",\"NORTH\"]}";
        JSONObject jObj;
        String areaString = "";
        String cityString = "";
        try
        {
            jObj = new JSONObject(jsonString);
            areaString = jObj.getJSONArray("AREA").toString();
            cityString = jObj.getJSONArray("CITY").toString();
        }
        catch (JSONException e)
        {
            e.printStackTrace();
        }
    
        System.out.println("areaString: " + areaString);
        System.out.println("cityString: " + cityString);
    

    【讨论】:

      猜你喜欢
      • 2020-05-03
      • 2015-12-19
      • 1970-01-01
      • 2017-06-08
      • 1970-01-01
      • 2019-10-20
      • 2021-08-26
      • 2020-05-11
      • 1970-01-01
      相关资源
      最近更新 更多