gpt4 book ai didi

java - 在 GWT 中创建 JSON 字符串的更好方法?

转载 作者:行者123 更新时间:2023-12-01 14:24:10 26 4
gpt4 key购买 nike

我有一个定义为 Object[][] 的变量参数,使我的应用程序能够将一系列键/值对发送到函数。下面的代码处理字符串、整数以及字符串和整数的 ArrayList。我想扩展它以支持 double 值和 boolean 值(以及两者的 ArrayList)。

该函数有很多重复代码。

更新:我正在使用 GWT 框架。

Q1。这是正确的方法,但需要一个通用类来提供更容易的维护吗?如果是这样怎么办?Q2。有更好的替代方法吗?

final static int KEY = 0;
final static int VALUE = 1;
...
String buildParamaters(Object[][] arguments) {
JSONObject parameters = new JSONObject();
for (Object[] arg : arguments) {
if (isType(arg[VALUE], "java.util.ArrayList")) {
JSONArray array = new JSONArray();
if (isType(arg[VALUE], "java.lang.Integer")) {
ArrayList<String> values = (ArrayList<String>) arg[VALUE];
for (int i=0; i<values.size(); i++) {
array.set(i, new JSONString(values.get(i)));
}
} else {
ArrayList<Integer> values = (ArrayList<Integer>) arg[VALUE];
for (int i=0; i<values.size(); i++) {
array.set(i, new JSONNumber(values.get(i)));
}
}
parameters.put(arg[KEY].toString(), array);
} else if (isType(arg[VALUE], "java.lang.Integer")) {
parameters.put(arg[KEY].toString(), new JSONNumber(((Integer)arg[VALUE]).doubleValue()));
} else {
parameters.put(arg[KEY].toString(), new JSONString((String)arg[VALUE]));
}
}
return parameters.toString();
}

最佳答案

您应该使用像 Jackson 这样的框架,它能够将任何 Java 对象映射到 JSON,反之亦然:

public class User {

private int age = 29;
private String name = "mkyong";
private List<String> messages = new ArrayList<String>() {
{
add("msg 1");
add("msg 2");
add("msg 3");
}
};

//getter and setter methods

@Override
public String toString() {
return "User [age=" + age + ", name=" + name + ", " +
"messages=" + messages + "]";
}
}

//1. Convert Java object to JSON format
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(new File("c:\\user.json"), user);

//2. Convert JSON to Java object
ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(new File("c:\\user.json"), User.class);

来源:http://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/

(顺便说一句:您需要向 User 添加 getter 和 setter)

关于java - 在 GWT 中创建 JSON 字符串的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17292826/

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