gpt4 book ai didi

java - Jersey - Json 到 java 字符串

转载 作者:行者123 更新时间:2023-12-01 23:21:50 25 4
gpt4 key购买 nike

我是 JSON Web 服务新手。我想将下面的简单 JSON 结构转换为 Java 字符串。尽管我引用了很多网站,但这仍然给我带来了更多的困惑。我使用 GSON 进行解析,但总是得到

"java.lang.IllegalStateException: This is not a JSON Array."

请协助我解决问题。

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;
}

}

最佳答案

很明显,重点是您的数据不是 JSON 数组。

{"data1":"100","data2":"hello"}

它是一个 JSON 对象,但您正在尝试解析它并获取一个 JsonArray。您可以更改此设置并使用 getAsJsonObject() 代替,但从您的代码来看,我认为您的起始数据是错误的。我猜你应该有一组员工,所以正确的数据可能应该是这样的:

[{"data1":"100","data2":"hello"}]

关于java - Jersey - Json 到 java 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20520336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com