我对 json 还很陌生,所以我不明白我做错了什么。 我希望我的数据 json 输出像这样,但我没有得到很好的结果。
{ "data": [
["2014-01", 71173],
["2014-02", 57624],
["2014-03", 64851],
["2014-04", 60486],
["2014-05", 60500],
["2014-06", 62908],
["2014-07", 64818],
["2014-08", 59961],
["2014-09", 58542],
["2014-10", 22050]
] }
这就是我得到的:
{ "data": [
"hallo 0",
"hallo 10",
"hallo 20",
"hallo 30",
"hallo 40",
"hallo 50",
"hallo 60",
"hallo 70",
"hallo 80",
"hallo 90" ] }
这是名为 TestTest 的数据的类
public class TestTest {
@JsonProperty("data")
private List<List<Object>> data = new ArrayList<List<Object>>();
public TestTest(){
}
@JsonProperty("data")
public List<List<Object>> getData() {
return data;
}
@JsonProperty("data")
public void setData(List<List<Object>> data) {
this.data = data;
}
}
@GET
@Path("/CallsPerMinuteAsLineChart")
public Response getTest(){
TestTest test = new TestTest();
List<List<Object>> data = new ArrayList<List<Object>>();
int loop;
for(loop=0; loop < 100; loop = loop + 10){
List<Object> dataitem = new ArrayList<>();
dataitem.add("hallo");
dataitem.add(loop);
data.add(dataitem);
}
test.setData(data);
return Response.ok(test).build();
}
最佳答案
问题不在于你的 json 结构,尽管创建这样的嵌套列表不是一个好的做法,我用 Gson
尝试了你的代码和Jackson
TestTest test = new TestTest();
List<List<Object>> data = new ArrayList<List<Object>>();
int loop;
for( loop = 0; loop < 100; loop = loop + 10 ){
List<Object> dataitem = new ArrayList<>();
dataitem.add( "hallo" );
dataitem.add( loop );
data.add( dataitem );
}
test.setData( data );
ObjectMapper mapper = new ObjectMapper();
String jackson = mapper.writeValueAsString( test );
System.out.println( new Gson().toJson( test ) );
System.out.println( jackson );
此代码打印:
{"data":[["hallo",0],["hallo",10],["hallo",20],["hallo",30],["hallo",40],["hallo",50],["hallo",60],["hallo",70],["hallo",80],["hallo",90]]}
{"data":[["hallo",0],["hallo",10],["hallo",20],["hallo",30],["hallo",40],["hallo",50],["hallo",60],["hallo",70],["hallo",80],["hallo",90]]}
这正是您想要的。由于没有人在不了解所有细节的情况下明确解决您的问题,因此我建议您这样使用它:
@GET
@Path("/CallsPerMinuteAsLineChart")
public String getTest(){
在这个方法中,只返回我转换后的 json 字符串。
关于java - JsonArray 输出不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35434014/