【发布时间】:2012-11-19 00:09:18
【问题描述】:
这是 JSON 字符串 1
{"title":["1","2"], "amount":["1","2"]}
这是 JSON 字符串 2
{"title":"", "amount":""}
字符串 1 是在我在表单中输入值时创建的,而字符串 2 是在我不输入时创建的, 我想知道字符串是格式 1,即标题是数组 ["1","2"] 还是格式 2,即标题只是 servlet 中服务器端的字符串 "",然后再解析它.有什么办法吗?
这是我之前的问题, How do I parse this JSON string using GSON in servlet
这已经解决了,但是你可以看到我有类 Data,它有 ArrayList 类型的实例变量,所以当我用这一行解析它时
Data data = gson.fromJson(param, Data.class);
抛出异常
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING at line 1 column 24
因为我已经声明了 ArrayList,所以它只需要 json 中的数组来解析它,没有任何例外......但是当我不在我的表单中输入值时,它不会创建 json 字符串作为
{"title":[], "amount":[]}
而是这样创建
{"title":'', "amount":''}
以字符串为值,导致解析抛出异常
【问题讨论】:
-
typeof elm == 'string'与elm instanceof Array -
@inhan 你能用一两行告诉我吗,写在答案中
-
如果您想要 Java 的解决方案,请不要将您的问题标记为 JavaScript……我认为它与 JS 没有任何关系。
-
我认为它有javascript数组,所以也添加了javascript标签
-
我的解决方案是基于 javascript,看过您的 Javascript 标签。所以我在下面删除了我的答案。出于同样的原因,请忽略我上面的评论。