0
추가 처리를 위해 JSON 파일에서 배열로 값을 읽으려고합니다. 나는 같은 JSON - 스마트 1.2.0 라이브러리를 사용하고 있습니다. 몇 가지 제한 사항으로 인해 2.0 버전을 사용할 수 없습니다.json-smart를 사용하여 JSON 파일 읽기
다음과 같은 예외가 발생합니다.
java.lang.ClassCastException: net.minidev.json.JSONArray cannot be cast to net.minidev.json.JSONObject
JSONObject 대신 JSONArray를 사용해 보았습니다. 내가 여기서 잘못하고있는 것? json 콘텐츠를 읽는 올바른 방법입니까?
아래는 자바 코드입니다.
JSONObject json = (JSONObject) JSONValue.parseWithException(browsers);
JSONArray array = (JSONArray) json.get("friends");
for (int i = 0; i < array.size(); i++) {
JSONObject cap = (JSONObject) array.get(i);
String first = (String) cap.get("name");
System.out.println(first);
}
아래는 json 파일 내용입니다. 더 요소 루프 대신 root.get(0)
에 대한 추가 할 수있는 경우
JSONArray root = (JSONArray) JSONValue.parseWithException(json);
JSONObject rootObj = (JSONObject) root.get(0);
JSONArray array = (JSONArray) rootObj.get("friends");
for (int i = 0; i < array.size(); i++) {
JSONObject cap = (JSONObject) array.get(i);
String first = (String) cap.get("name");
System.out.println(first);
}
:
[
{
"friends": [
{
"id": 0,
"name": "test1"
},
{
"id": 1,
"name": "test2"
}
]
}
]
그게 효과가 있습니다. 감사. – Purus
"friends"라는 루트가없는 json 파일을 가질 수 있습니까? – Purus
예, 다음과 같은 JSON을 가질 수 있습니다 :'[{ "id": 0, "name": "test1"}, { "id": 1, "name": "test2"}]' – cy3er