2017-08-07 96 views
2

我一直在阅读json格式的服务器数据,当我们想发送一些数据发送到服务器以json格式,所以数据以json格式传输,然后字符串请求来自?我不知道我们是否可以发布并获取字符串格式的数据,以及使用字符串和json请求的区别和用例是什么?JSONRequest和StringRequest之间的区别是什么

谢谢!

+2

https://stackoverflow.com/questions/32420158/jsonrequest-vs-stringrequest-in-android-volley –

+0

遗憾的是它并没有帮助 – blackHawk

+0

JSONRequest返回结果为一个JSONObject。 StringRequest返回结果作为一个字符串(一个字符串的JSON结构) –

回答

5

StringRequest类将用于提取任何类型的字符串数据。 响应可以是json,xml,html,text。

// Request a string response from the provided URL. 
StringRequest stringRequest = new StringRequest(Request.Method.GET, URL, 
      new Response.Listener<String>() { 
    @Override 
    public void onResponse(String response) { 
     // Display the first 500 characters of the response string. 

    } 
}, new Response.ErrorListener() { 
    @Override 
    public void onErrorResponse(VolleyError error) { 

    } 
}); 

如果您在响应预期JSON对象,你应该使用 JsonObjectRequest。

JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.GET, 
      URL, null, 
      new Response.Listener<JSONObject>() { 

       @Override 
       public void onResponse(JSONObject response) { 
        Log.d(TAG, response.toString()); 

       } 
      }, new Response.ErrorListener() { 

       @Override 
       public void onErrorResponse(VolleyError error) { 

       } 
      }); 
+0

使用字符串请求有什么好处,因为返回的数据仍然是json格式,我们必须解析才能获取字符串,为什么特定的字符串请求 – blackHawk

+1

这个“StringRequest类将用于获取任何类型的字符串数据”如果有服务器上的数据,例如数字,url等,但字符串请求将只返回该数据中的字符串? – blackHawk

+0

@blackHawk还有什么疑问? –

1

这是关于请求的返回类型,StringRequest处理一个Stringerror = falseJSONObjectRequest响应处理一个JSONObject响应像{"error" : false},如何知道它的JSONObject?使用括号({)。

+0

这意味着响应仍然在json中,但在字符串请求中只有格式被更改?它的中间件将json转换为字符串格式? – blackHawk

+0

对StringRequest的响应是String,服务器返回String,对于JSONObject服务器返回一个JSON响应 –

+0

因此,这意味着服务器还可以返回字符串格式的数据以及json对象吗? – blackHawk

相关问题