Joh*_*han 26 java android 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);
Run Code Online (Sandbox Code Playgroud)
service.php生成一个json字符串.我怎么从我的response?顺便说一句,我已经把GSON图书馆搞定了,我可以在其中使用任何方法吗?
类似于这个的解决方案看起来很丑陋,imo:从httpresponse android处理json的最佳方式
有更好的方法,对吧?
任何帮助表示赞赏,谢谢
更新:
String json = EntityUtils.toString(response.getEntity());
Run Code Online (Sandbox Code Playgroud)
似乎可以做到这一点.只有一个小问题:字符串用括号括起来[].我应该手动删除它们吗?它们是由php:s生成的json_encode()
Mik*_*keN 20
我认为你遇到的问题类似于我刚遇到的问题.如果您运行:
String json_string = EntityUtils.toString(response.getEntity()); JSONObject temp1 = new JSONObject(json_string);
上面的代码将引发异常,看起来像JSON数组括号是罪魁祸首.但是将JSON数组作为顶级元素是很好的!您只需要使用JSONArray()而不是JSONObject:
String json_string = EntityUtils.toString(response.getEntity()); JSONArray temp1 = new JSONArray(json_string);
因此,您必须知道您是在JSON代码中获取JSONArray还是单个字典JSONObject.
如果你习惯了iOS/Objective-C JSON解析库,他们使用相同的顶级元素来处理json字典和json数组,所以移动到JAVA/Android世界让我感到困惑的是有两种类型来处理JSON,具体取决于顶级回归.
| 归档时间: |
|
| 查看次数: |
81791 次 |
| 最近记录: |