gpt4 book ai didi

android - 使用 GSON 问题解析 JSON

转载 作者:行者123 更新时间:2023-11-30 02:44:41 25 4
gpt4 key购买 nike

解析 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 类 Product 解析上述 JSON

  1. 字段 action、react 解析正确。
  2. 字段类别返回空 Map。

最佳答案

我正在使用 GSON 版本 2.3 从 maven 下载它。只需创建一个项目,将所有项目复制到其中并设置 json 文件路径,然后按运行:

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

}
}

关于android - 使用 GSON 问题解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25273622/

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