我是 JSON Web 服务的新手。我想将下面的简单 JSON 结构转换为 Java 字符串。虽然我提到了很多网站,但它仍然给我增加了更多的困惑。我正在使用 GSON 进行解析,但总是得到
“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();
}
}
员工豆类:
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;
}
}