Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 改造Android应用程序从Node.js服务器获取JSON_Java_Android_Json_Node.js_Retrofit - Fatal编程技术网

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'));