0
我是JSON Web服務的新手。我想將簡單的JSON結構轉換爲Java String。雖然我提到了很多網站,但它給我增加了更多的困惑。我正在使用GSON解析,但alwasy得到澤西島 - JSON到Java字符串
「java.lang.IllegalStateException:這不是JSON數組。
請幫助我解決問題。
JSON數據:{"data1":"100","data2":"hello"}
Java代碼:
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類:
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