通过密钥jsonarray获取价值

时间:2017-03-02 07:48:14

标签: java arrays json get

// Create a check for IE9 (or any other specific browser).
if(IE9) {
  $(".row.equal-cols > [class*='col-']").matchHeight();
}

JSONArray arr = [ {"key1":"value1"}, {"key2":"value2"}, {"key3":"value3"}, {"key4":"value4"} ] 抛出错误。如何在arr.get("key1")中按键获取值?

JSONArray也会抛出错误。我应该循环播放数组吗?这是唯一的方法吗?

错误是什么?

在Eclipse Debug透视图中,这些表达式返回为; arr.getString("key1")

4 个答案:

答案 0 :(得分:13)

您可以解析jsonResponse以下代码:

private void parseJsonData(String jsonResponse){
        try
        {
            JSONArray jsonArray = new JSONArray(jsonResponse);

            for(int i=0;i<jsonArray.length();i++)
            {
                JSONObject jsonObject1 = jsonArray.getJSONObject(i);
                String value1 = jsonObject1.optString("key1");
                String value2 = jsonObject1.optString("key2");
                String value3 = jsonObject1.optString("key3");
                String value4 = jsonObject1.optString("key4");
            }
        }
        catch (JSONException e)
        {
            e.printStackTrace();
        }
    }

答案 1 :(得分:4)

听起来你想要从JSONObjects数组中找到一个特定的键。问题是,它是一个数组,所以你必须迭代每个元素。一个解决方案,假设没有重复键是......

private Object getKey(JSONArray array, String key)
{
    Object value = null;
    for (int i = 0; i < array.length(); i++)
    {
        JSONObject item = array.getJSONObject(i);
        if (item.keySet().contains(key))
        {
            value = item.get(key);
            break;
        }
    }

    return value;
}

现在,让我们说你想要找到&#34; key1&#34;的价值。在数组中。您可以使用以下行获取值:String value = (String) getKey(array, "key1")。我们投了一个字符串,因为我们知道&#34; key1&#34;指的是一个字符串对象。

答案 2 :(得分:2)

for (int i = 0; i < arr.length(); ++i) {

    JSONObject jsn = arr.getJSONObject(i);

   String keyVal = jsn.getString("key1");
}

您需要遍历数组以获取每个JSONObject。获得json的对象后,您可以使用values

获取keys

答案 3 :(得分:-3)

您可以按键轻松获取JSON数组元素:

var value = ArrName['key_1']; //<- ArrName is the name of your array
console.log(value);

或者你也可以这样做:

var value = ArrName.key_1;

就是这样!