如何解析此 JSON 字符串以在 servlet 中创建集合对象
{"title":["1","2"],"amount":["1","3"]}
我的 servlet 中的内部类
public class Data {
private List<String> title;
private List<String> amount;
//getters and setters
}
解析json
Gson gson = new Gson();
String param=request.getParameter("info");
Data data = gson.fromJson(param, Data.class);
List<String> a=data.getTitle();
if(a==null){p("a null");}else{p("a not null");} //here a is null, prints "a null"
这是我如何创建 json 字符串 http://jsfiddle.net/testtracker/XDNLp/ 的 jsfiddle
客户端表单提交功能
var dataString=JSON.stringify($(this).serializeObject());
$.ajax({
type: "POST",
url: URL,
data: {"info":JSON.stringify($(this).serializeObject())},
success: function(data){
}
});
这就是我到目前为止所拥有的。我的方式正确吗?接下来我应该做什么来 System.print 它们?
最佳答案
当我无法解决某些问题时,我会编写尽可能小的程序来验证我的理解是否正确。对于你的情况,我想出了这个:
import java.util.List;
import com.google.gson.Gson;
public class GsonTest {
public static class Data {
private List<String> title;
public List<String> getTitle() {return title;}
public Data() {}
}
public static void main (String [] args) {
Gson gson = new Gson();
Data data = gson.fromJson("{\"title\":[\"1\",\"2\"]}", Data.class);
System.out.println(data.getTitle());
}
}
编译并运行,输出:
["1", "2"]
所以我仍然相信 servlet 接收到的输入不正确(或者您没有提供现有代码的准确描述)。请将上面的示例与您的真实代码进行比较。
关于java - 如何在 servlet 中使用 GSON 解析此 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13648273/