2017-10-07 1 views
0

JSON 응답에서 값을 가져 오려고합니다. 나는 다음과 같은 코드를 사용하고일부 JSON을 GSON을 사용하여 JsonArray로 구문 분석 할 수 없습니다.

Exception in thread "main" java.lang.IllegalStateException: Not a JSON Array: {"o":"1.18988","h":"1.18993","l":"1.18963","c":"1.18993"} 

: 나는 GSON 내가이 오류가 있기 때문에 구문 분석을 시도하고 알고

{"o":"1.18988","h":"1.18993","l":"1.18963","c":"1.18993"} 

: 나는 다음과 같은 문자열 배열을 추출 제외하고, 작업에 이르기까지 모든 것을 가지고 구문 분석을 시도하십시오 :

final JsonElement midElement = obj.get("mid"); 
     final JsonArray midArray = midElement.getAsJsonArray(); 
     for(Object rate : midArray){ 
      final JsonObject rateObj = (JsonObject)rate; 
      final JsonElement openElement = rateObj.get("o"); 
      open = openElement.getAsFloat(); 

      final JsonElement highElement = rateObj.get("h"); 
      high = highElement.getAsFloat(); 

      final JsonElement lowElement = rateObj.get("l"); 
      low = lowElement.getAsFloat(); 

      final JsonElement closeElement = rateObj.get("c"); 
      close = closeElement.getAsFloat(); 
     } 
+0

나는 내가 어제 그 자체 https://stackoverflow.com/questions/46587719/json-object-cannot-be-converted-to-json-array/46587951#46587951을 – Optional

+0

JSON 배열은 대괄호로 묶어야합니다 대답 생각? {{ ""o ":"1.18988 ","h ":"1.18993 ","l ":"1.18963 ","c ":"1.18993 "}} – kotacc

답변

1

우선 유효한 JSON 배열로 보이지 않습니다. 이 모양은 다음과 같습니다.

[{"o":"1.18988","h":"1.18993","l":"1.18963","c":"1.18993"}] 

JSON 형식으로 파싱하려면이 코드를 사용해보십시오.

JSONObject jsonObject = new JSONObject(jsonString); 
    JSONArray jsonArray = jsonObject.getJSONArray("mid"); 
    for (int i = 0; i < jsonArray.length(); i++) {    
     jsonArray.getJSONObject(i).getString("o"); 
    } 

그런 다음 원하는 데이터 형식으로 변환하십시오.

관련 문제