我有一个NodeJS云功能,该功能以数组的形式获取一堆JavaScript对象(来自db的条目),并将其发送给客户端。
在服务器上,我使用以下命令执行此操作:
return JSON.stringify(result);
其中“结果”是JS对象的数组。然后,我将数据发送给客户端。
在我的Android客户端中,我收到了String,并且需要遍历原始数组中的每个对象并分别对其进行处理。我不行我总是收到类似这样的错误:
I: [Batch] com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected name at line 1 column 3 path $[0].
在我的Android客户端上,我尝试过:
WebItemEntry [] items = new Gson().fromJson(jsonString, WebItemEntry[].class);
AND ...
ArrayList<WebItemEntry> items = new Gson().fromJson(jsonString, new TypeToken<ArrayList<WebItemEntry>>(){}.getType());
似乎都不起作用。与上述相同。
我从数据库获得的原始输出是JSON字符串,该字符串由五个我要迭代和解析的单独条目组成。它有点混乱,但您可以看到其修饰符是花括号{。我真的很想在我的android客户端中使用GSON或类似的代码分别解析这些条目,并将它们转换为我的自定义Java类:WebItemEntry。
[{\"charityID\":0,\"purchaserZIP\":\"\",\"category\":\"Women\u0027s Accessories\",\"valueCents\":0}, {... same thing for a different entry here...}, {new entry ... }]
答案 0 :(得分:0)
在服务器上,忽略stringify
并返回普通对象,当js对象两次字符串化时出现那些\"
字符。因此,将return JSON.stringify(result);
替换为return result;
。