저는 JSON 웹 서비스를 처음 사용합니다. 아래 간단한 JSON 구조를 Java String으로 변환하려고합니다. 비록 내가 많은 사이트를 언급했지만, 여전히 그것은 나에게 더 많은 혼란을 더한다. 구문 분석을 위해 GSON을 사용하고 있습니다. 그러나 alwasy를 사용하고 있습니다.저지 - Json에서 java 문자열
"java.lang.IllegalStateException : 이것은 JSON Array가 아닙니다."
문제를 해결하려면 도와주세요.
JSON 데이터 : {"data1":"100","data2":"hello"}
자바 코드 :
private void getPostMessage(String msg) {
try {
EmployeeBean emp;
String json;
Client client = Client.create();
WebResource webResource = client.resource("http://localhost:8080/JSON_EMP_Serv/rest/server/post/");
ClientResponse response = webResource.type("application/json").post(ClientResponse.class,msg);
if (response.getStatus() != 201) {
throw new RuntimeException("Failed : HTTP error code : " + response.getStatus());
}
String output = response.getEntity(String.class);
System.out.println("\n============get POST Message Response============");
System.out.println(output);
/******* JSON PARSER **********/
Gson gson = new Gson();
JsonParser parser = new JsonParser();
JsonArray Jarray = parser.parse(output).getAsJsonArray();
ArrayList<EmployeeBean> lcs = new ArrayList<EmployeeBean>();
for(JsonElement obj : Jarray)
{
emp = gson.fromJson(obj,EmployeeBean.class);
lcs.add(emp);
}
int length=lcs.size();
System.out.println("ARRAY LENGTH"+length);
for(int i=0;i<length;i++)
{
System.out.println(lcs.get(i)+"\n");
}
} catch (Exception e) {
e.printStackTrace();
}
}
EMPLOYEEBEAN 클래스 : 요점은 데이터가 JSON 배열 아님을 분명히한다
package com.pats.client.bean;
import java.util.ArrayList;
import java.util.List;
import com.google.gson.annotations.SerializedName;
public class EmployeeBean {
private String data1= null;
private String data2 = null;
public EmployeeBean(String data1,String data2)
{
this.data1=data1;
this.data2=data2;
}
public String getData1()
{ return data1; }
public String getData2()
{ return data2; }
public void setData1(String data1)
{
this.data1=data1;
}
public void setData2(String data2)
{
this.data2=data2;
}
@Override
public String toString() {
//return "[data1=" + data1 + ", data2=" + data2 + "]";
return " DATA-1 : " + this.data1 + "DATA-2 : " + this.data2;
}
}
학습 한 내용 : 오류가 발생했다고 생각하십시오! 이 경우에는 사람이 읽을 수있는 것이 좋습니다. – Gimby