gpt4 book ai didi

java gson json对象数组到字符串数组

转载 作者:行者123 更新时间:2023-11-30 07:13:21 24 4
gpt4 key购买 nike

我是 JAVA 初学者,正在使用 gson 库来转换 JSON 字符串,如下所示:

String json = "{\"Report Title\": \"Simple Embedded Report Example with Parameters\",\"Col Headers BG Color\": \"yellow\",\"Customer Names\":[\"American Souvenirs Inc\",\"Toys4GrownUps.com\",\"giftsbymail.co.uk\",\"BG&E Collectables\",\"Classic Gift Ideas, Inc\"]}";
Gson gson = new Gson();
jsonObject (Map) = gson.fromJson(json, Object.class);

但问题是我需要将“客户名称”数组作为字符串数组而不是对象数组返回。

gson 可以做到这一点吗?还是必须通过某种方式检测类型(数组)然后循环每个元素将其转换为字符串数组并替换对象数组来进行转换?

增加的问题是JSON字段名称不固定,并且JSON字符串中可能包含多个数组,并且都需要转换。

最佳答案

您可以使用jsonarray来获取特定字段

你可以找到json api JSON

将 json 文本添加到文件中,或者您可以使用缓冲区传递给参数

String json = "{\"customer_names\" : [...]}";   

然后

JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader("test.json"));

JSONObject jsonObject = (JSONObject) obj;
JSONArray msg = (JSONArray) jsonObject.get("Customer Names");
Iterator<String> iterator = msg.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}

或者你可以使用 GSON 类似的东西

public class JsonPojo {
private String[] customer_names;
public String[] getCustomerNames(){ return this.customer_names;}
}


public class App{

public static main(String[] args) {

Gson gson = new Gson();
JsonPojo thing = gson.fromJson(json, JsonPojo.class);
if (thing.getCustomerNames()!= null)
{
// do what you want
}

}

}

关于java gson json对象数组到字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38813660/

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