JSON从key中提取值

时间:2017-03-09 22:21:58

标签: java json

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

JSON STRING:

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

我希望" AREA"的值在一个字符串中,CITY在一个字符串中。我试过了:

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

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

4 个答案:

答案 0 :(得分:2)

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

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

您可以参考this article获取进一步的帮助。

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:2)

您试图直接访问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));