Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Jackson库序列化JSON的正确POJO_Java_Android_Json_Jackson_Google Http Client - Fatal编程技术网

Java 使用Jackson库序列化JSON的正确POJO

Java 使用Jackson库序列化JSON的正确POJO,java,android,json,jackson,google-http-client,Java,Android,Json,Jackson,Google Http Client,因此,问题是如何正确地为JSON构建POJO,如下所示: {"1":{ "value_1":"something", "value_2":"something else"}, "2": { "value_1":"something", "value_2":"something else"}, "3": { "value_1":"something", "value_2":"something else"},

因此,问题是如何正确地为JSON构建POJO,如下所示:

{"1":{
       "value_1":"something",
       "value_2":"something else"},
 "2": {
       "value_1":"something",
       "value_2":"something else"},
 "3": {
       "value_1":"something",
       "value_2":"something else"},

  ...

 "999": {
         "value_1":"something",
         "value_2":"something else"}}
[{“id”: 1, “values”: [{“value”: 1, “text”: “something”}, {“value”: 2, “text”: “something else”}]},
{“id”: 2, “values”: [{“value”: 1, “text”: “something”}, {“value”: 2, “text”: “something else”}]},
{“id”: 3, “values”: [{“value”: 1, “text”: “something”}, {“value”: 2, “text”: “something else”}]},
…
{“id”: 999, “values”: [{“value”: 1, “text”: “something”}, {“value”: 2, “text”: “something else”}]}]

问题是,我无法如中所示解析JSON,因为保存我所需数据的数组有许多不同的名称。

我建议将JSON调整为如下所示:

{"1":{
       "value_1":"something",
       "value_2":"something else"},
 "2": {
       "value_1":"something",
       "value_2":"something else"},
 "3": {
       "value_1":"something",
       "value_2":"something else"},

  ...

 "999": {
         "value_1":"something",
         "value_2":"something else"}}
[{“id”: 1, “values”: [{“value”: 1, “text”: “something”}, {“value”: 2, “text”: “something else”}]},
{“id”: 2, “values”: [{“value”: 1, “text”: “something”}, {“value”: 2, “text”: “something else”}]},
{“id”: 3, “values”: [{“value”: 1, “text”: “something”}, {“value”: 2, “text”: “something else”}]},
…
{“id”: 999, “values”: [{“value”: 1, “text”: “something”}, {“value”: 2, “text”: “something else”}]}]

您可以尝试这样解析(大量代码)

公共类ParseTo{
私有映射未知=新HashMap();
@JsonAnyGetter
公共地图获取(){
返回未知;
}
@JSONANYSETER
公共无效集(字符串键、对象值){
if(映射的值实例){
Map m=(Map)值;
未知.put(key,newinnerParse(m));
}
}
}
公共类内部解析{
私有静态最终字符串V1_PROPERTY=“value_1”;
私有静态最终字符串V2_PROPERTY=“value_2”;
公共内部解析(映射){
this.value1=map.get(V1_属性);
this.value2=map.get(V2_属性);
}
私有字符串值1;
私有字符串值2;
公共字符串getValue1(){
返回值1;
}
public void setValue1(字符串值1){
此值为1.value1=value1;
}
公共字符串getValue2(){
返回值2;
}
public void setValue2(字符串值2){
此参数为0.value2=value2;
}
}
公共班机{
公共静态void main(字符串[]args){
字符串jsonString=“{\'1\”:{\n+
“\“值\u 1\”:\“某物”,\n”+
“\“值\u 2\:\”其他\“},\n”+
“\'2\':{\n”+
“\“值\u 1\”:\“某物”,\n”+
“\“值\u 2\”:\“其他内容\”}”+
"}";
试一试{
ParseTo parsed=new ObjectMapper().readValue(jsonString,ParseTo.class);
已解析的.get().entrySet().stream()
.forEach(条目->{
System.out.println(“键:+entry.getKey()+”,值:(“+
内部值1:“+entry.getValue().getValue1()+”+
“内部值2:”+entry.getValue().getValue2()+
")");
});
}捕获(例外e){
e、 printStackTrace();
}
}
}
依赖项:

com.fasterxml.jackson.core jackson core

com.fasterxml.jackson.core jackson注释


com.fasterxml.jackson.core jackson databind

每个元素后面的json中是否都有逗号,还是与您在问题中所显示的一样?因为您向我们展示了无效的JSON,所以我不能调整JSON,因为我是从一个对它没有影响的api获取JSON的=(