从HttpResponse获取json
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(“http://my.server:8080/android/service.php");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);nameValuePairs.add(new BasicNameValuePair("action", "getjson"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
service.php
生成一个json字符串。我该如何从我的手机上获取response
?顺便说一句;
我已经将该GSON
库排除在外了,我可以在其中使用任何方法吗?
有更好的方法,对吗?
任何帮助表示赞赏,谢谢
String json = EntityUtils.toString(response.getEntity());
似乎可以解决问题。只有一个小问题:字符串用方括号括起来[]
。我应该手动删除它们吗?它们是由php:s生成的json_encode()
回答:
我认为您遇到的问题与我刚遇到的问题类似。如果您运行:
字符串json_string = EntityUtils.toString(response.getEntity());JSONObject temp1 =新的JSONObject(json_string);
上面的代码将引发异常,并且似乎应归咎于JSON数组括号。但是,最好将JSON数组作为顶级元素!您只需要使用JSONArray()而不是JSONObject:
字符串json_string = EntityUtils.toString(response.getEntity());JSONArray temp1 =新的JSONArray(json_string);
因此,您必须知道要获取的是JSONArray还是在JSON代码中为JSONObject的单个字典。
如果您习惯使用iOS / Objective-CJSON解析库,那么它们会使用相同的顶级元素来处理JSON字典和json数组,因此转到JAVA /Android世界会使我感到困惑,因为取决于顶级返回。
以上是 从HttpResponse获取json 的全部内容, 来源链接: utcz.com/qa/428632.html