gpt4 book ai didi

java - gson 未终止的字符串错误

转载 作者:行者123 更新时间:2023-11-30 04:07:29 25 4
gpt4 key购买 nike

我一直在使用 Gson 毫无问题地将 json 对象从 Appengine 传输到我的 Android 客户端。我正在使用下面的代码。

服务器:

Query<WaterSupply> q = ofy.query(WaterSupply.class).filter("FdID", fdID)
.filter("timeUpdated >", lastUpdate);
Gson gson=new Gson();

resp.getWriter().print(gson.toJson(q.list()));

客户:

List<WaterSupply> list=new ArrayList<WaterSupply>();
String json1 =wsResult.wsResponse;


JsonElement json = new JsonParser().parse(json1);

JsonArray array= json.getAsJsonArray();

Iterator<JsonElement> iterator = array.iterator();

while(iterator.hasNext()){
JsonElement json2 = (JsonElement)iterator.next();
Gson gson = new Gson();
WaterSupply ws= gson.fromJson(json2, WaterSupply.class);
//can set some values in contact, if required
list.add(ws);
}//Unable to invoke no-args constructor for interface com.jackson.FirefighterLog.shared.WaterSupplyProxy.
//Register an InstanceCreator with Gson for this type may fix this problem.


Gson gson = new Gson();
Type listType = new TypeToken<List<WaterSupply>>(){}.getType();
List<WaterSupply> wsList = (List<WaterSupply>) gson.fromJson(wsResult.wsResponse, listType);

我已经开始使用更大的对象并且不得不切换到流式解析实现,因为我遇到了内存不足错误。我现在使用以下代码:

服务器:同上

客户:

   public static List<WaterSupply> readJsonStream(InputStream in) throws IOException {
JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
Gson gson=new Gson();
List<WaterSupply> messages = new ArrayList<WaterSupply>();
reader.beginArray();
while (reader.hasNext()) {
WaterSupply message = gson.fromJson(reader, WaterSupply.class);
messages.add(message);
}
reader.endArray();
reader.close();
return messages;
}

我假设这与换行符 (/n) 有关,但我现在不确定,也不确定如何解决这个问题...有什么想法吗?

最佳答案

我没有使用 GSon 的经验,但未终止的错误通常表示截断或解析器错误(如上所述)。我发现其他人也有同样的问题,并鼓励您纠正其他可能的“特殊字符”。在这篇文章中,org.json.JSONException: Unterminated string at 737 [character 738 line 1] ,问题出在与号字符上。

最好的问候。

关于java - gson 未终止的字符串错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11380124/

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