java - jsonarray key value




열쇠 jsonarray에 의해 가치를 얻으십시오 (3)

JSONArray arr = 
[
    {"key1":"value1"},
    {"key2":"value2"},
    {"key3":"value3"},
    {"key4":"value4"}
]

arr.get("key1") 오류가 발생합니다. JSONArray 에서 키를 사용하여 값을 얻으려면 어떻게해야합니까?

arr.getString("key1") 또한 오류를 발생시킵니다. 배열을 반복해야하나요? 그것을하는 유일한 방법일까요?

오류가 무엇입니까?

Eclipse 디버그 퍼스펙티브에서,이 표현식은; error(s)_during_the_evaluation


배열의 JSONObject에서 특정 키를 찾으려는 것 같습니다. 문제는 배열이므로 각 요소를 반복해야한다는 것입니다. 하나의 솔루션, 반복 키가 없다고 가정하면 ...

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

자, 배열에서 "key1"의 값을 찾고 싶다고합시다. 다음 값을 얻을 수 있습니다 : String value = (String) getKey(array, "key1") . 우리는 "key1"이 문자열 객체를 참조하기 때문에 문자열로 변환합니다.


아래 코드처럼 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();
        }
    }

다음과 같이 JSON 배열 요소를 쉽게 얻을 수 있습니다.

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

또는 다음과 같이 할 수도 있습니다.

var value = ArrName.key_1;

그게 다야!





get