Java 改造Android应用程序从Node.js服务器获取JSON
我解决了这个问题。 我在服务器上发送纯文本。 将行更改为:Java 改造Android应用程序从Node.js服务器获取JSON,java,android,json,node.js,retrofit,Java,Android,Json,Node.js,Retrofit,我解决了这个问题。 我在服务器上发送纯文本。 将行更改为: response.writeHead(200, {'Content-Type': 'application/json'}); 快速提问。我的朋友建议对REST android应用程序进行改造,而不是使用异步任务。我有一个小问题,因为我是新的系统。服务器运行时使用Node.js通过.stringify()发送JSON对象,因此当我检索一个对象时,它是一个字符串而不是JSON,我无法将其转换为相应对象的列表。我猜错误是由强制转换异常引起
response.writeHead(200, {'Content-Type': 'application/json'});
快速提问。我的朋友建议对REST android应用程序进行改造,而不是使用异步任务。我有一个小问题,因为我是新的系统。服务器运行时使用Node.js通过.stringify()发送JSON对象,因此当我检索一个对象时,它是一个字符串而不是JSON,我无法将其转换为相应对象的列表。我猜错误是由强制转换异常引起的,因为它发送字符串是因为我得到了异常:
com.google.gson.JsonSyntaxException
任何帮助都会很好。以下是我认为合适的代码
Android客户端代码示例如下:
private void requestData() {
RestAdapter adapter = new RestAdapter.Builder().setEndpoint(ENDPOINT).build();
UnitAPI unit_api = adapter.create(UnitAPI.class);
unit_api.getUnits(new Callback<List<Unit>>() {
@Override
public void success(List<Unit> t, Response response) {
units = t;
updateDisplay();
}
@Override
public void failure(RetrofitError error) {
Log.d("Failure UnitGet()", error.getMessage());
}
});
}
服务器通过以下命令发送.json文件:
if (method == "GET") {
response.write(JSON.stringify(unitsJSON));
}
关于如何从客户端的字符串或服务器端的json对象将其转换为单位列表,有什么想法吗
谢谢 我解决了这个问题。我在服务器上发送纯文本。将行更改为:
response.writeHead(200, {'Content-Type': 'application/json'});
我认为您必须使用npm向包中添加
json解析器
然后
回信
res.end(JSON.stringfy('your resp0onse here'));
当您尝试访问格式错误的json文档时,会引发JsonSyntaxException。尝试从您的服务器验证json(在internet上搜索在线验证程序)。@JEY发现在创建服务器时,my Node.js发送的是纯文本而不是json。我从一位同事那里继承了服务器,因此我没有意识到他们是这样设置的。:)谢谢你的回复!如果你解决了你的问题,把它作为一个答案,而不是编辑成你的问题。
res.end(JSON.stringfy('your resp0onse here'));