解析JSON中嵌套的键值对时出现的问题。
JSON结构
{
"data":{
"action":"item1",
"react":"item2",
"categories":{
"Price":{
"$0-$10":{
"Refine":"false",
"bcc":"2"
},
"$251-$500":{
"Refine":"false",
"bcc":"2"
}
},
"Gender":{
"Girl":{
"Refine":"false",
"bcc":"2"
},
"Boy":{
"Refine":"false",
"bcc":"2"
}
}
}
}}将以下类定义为POJO
class Product
{
public Data data;
public class Data{
public String action;
public String react;
public Map<String,Map<String,request>> categories;
}}
public class request{
public string Refine;
public String bcc
}JSON元素“类别”中的键值对是动态的。
Product responseData = gson.fromJson(jsoninput,
Product.class);尝试使用gson和pogo类产品解析上述JSON
发布于 2014-08-13 16:09:45
我使用的是GSON版本2.3,从maven下载它。只需创建一个项目,复制其中的所有内容,并设置json文件路径并按RUN:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class main {
public static void main(String[] args) {
Gson gson = new Gson();
try {
BufferedReader br = new BufferedReader(
new FileReader("your json file path"));
// Deserialization
Product obj = gson.fromJson(br, Product.class);
// Serialization
gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(obj);
System.out.println(json);
} catch (IOException e) {
e.printStackTrace();
}
}
}您的POJO课程:
import java.util.Map;
class Product
{
public Data data;
public class Data{
public String action;
public String react;
public class request{
public String Refine;
public String bcc;
}
public Map<String,Map<String,request>> categories;
}
}最后是你的json字符串:
{
"data":{
"action":"item1",
"react":"item2",
"categories":{
"Price":{
"$0-$10":{
"Refine":"false",
"bcc":"2"
},
"$251-$500":{
"Refine":"false",
"bcc":"2"
}
},
"Gender":{
"Girl":{
"Refine":"false",
"bcc":"2"
},
"Boy":{
"Refine":"false",
"bcc":"2"
}
}
}
}
}https://stackoverflow.com/questions/25273622
复制相似问题