栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Android-如何从字符串解析JsonArray?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android-如何从字符串解析JsonArray?

嗨,@ Caerulius,Harish,ρяσsρєяK,Hot Licks等等。
最终,经过2天的头痛和2个不眠之夜,我解决了这个问题。而且由于您花了宝贵的时间与我讨论,因此我认为我必须告诉您根本原因。那是我的责任

首先,我是一名高级android开发人员。因此,我至少了解JSON基本知识,知道如何从JSON字符串解析数据,并且知道许多有用的在线工具来进行验证。我确认从服务器获取的JSON字符串有效。

就像我在问题中告诉我的那样,我曾经

final String result =EntityUtils.toString(entity);
HttpEntity
对象获取JSON字符串。过去,我已经使用过很多次了,并且有效。没问题。但是,在这种情况下不是。原始的JSON字符串如下所示:

   [{      "LotPrizes":[         { "Prize":"Giảitám", "Range":"50"         },         { "Prize":"Giảibảy", "Range":"264"         },         ...    }]

但是我得到的是这样的:

"[{      "LotPrizes":[         { "Prize":"Giảitám", "Range":"50"         },         { "Prize":"Giảibảy", "Range":"264"         },         ...    }]"

该字符串与常量字符串类似,我们可以如下声明:

String stringVariable = ""[{          \"LotPrizes\":[  {     \"Prize":\"Giảitám\",     \"Range\":\"50\"  },  {     \"Prize\":\"Giảibảy\",     \"Range\":\"264\"  },  ...        }]" ;

这是有效的字符串,但不是有效的JSON字符串。

为了解决此问题,我更改了获取JSON字符串的方式,并删除了不必要的字符,如下所示:

      HttpClient httpClient = getHttpClient();     HttpGet httpGet = new HttpGet(url);     HttpResponse httpResponse = httpClient.execute(httpGet);     HttpEntity entity = httpResponse.getEntity();     InputStream is = entity.getContent();     BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8);     StringBuilder sb = new StringBuilder();     String line = null;     while ((line = reader.readLine()) != null) {         sb.append(line + "n");     }     is.close();     String json = sb.toString();     json = json.replace("\", "");     json = json.substring(1);     json = json.substring(0, json.length() - 2);

现在,该

json
变量包含我可以正确解析的JSON字符串。我认为这应该是HttpEntity库的错误。

希望这对其他人有所帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609206.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号