java JSON 从键中提取值

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/42706633/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-03 06:49:37  来源:igfitidea点击:

JSON extract values from key

javajson

提问by user7637864

I have a String. I am converting it to JSONOBJECT and I am trying to extract the values based on the key.

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

JSON STRING:

JSON 字符串:

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

I want the values of "AREA"in one string and CITY in one String. I have tried :

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

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

But I am not able to retrieve the values in that way. Need some suggestions.

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

采纳答案by Atul

You were trying to access Areadirectly whereas it is a JSONArrayObject.

您试图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));

回答by Alon Segal

JSONArray area = (JSONArray) jsonObject.get("AREA");
Iterator<String> iterator = area.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

You should get a JSONArray object and then you can simply iterate and build the appropriate strings (using StringBuilder).

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

You can refer to this articlefor further help.

您可以参考这篇文章以获得进一步的帮助。

回答by OneCricketeer

Your data has [], so use getJSONArray("AREA")and you can iterate over that.

你的数据有[],所以使用getJSONArray("AREA"),你可以迭代它。

(The method exactly would depend what library you have)

(该方法完全取决于您拥有的库)

回答by dat3450

I believe this is what you are after:

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

    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);