如何在 android 中解析来自 url 或 restful 服务的大量 JSON 数据?没有 GSON
Posted
技术标签:
【中文标题】如何在 android 中解析来自 url 或 restful 服务的大量 JSON 数据?没有 GSON【英文标题】:how to parse huge JSON data froma url or restful service in android?without GSON 【发布时间】:2013-12-11 10:08:13 【问题描述】:我有一个 Rest ful 服务,.. 我得到一个 JSON 数据,比如,..
"returnCode": "success",
"RecievedData":
"results": [
"details": [
"moredetails": [
"id": "123456",
"price": "129.99",
"recorded_at": 3223322,
"lastrecorded_at": 0002020,
"seller": "google",
"availability": "Available",
"currency": "USD"
],
"offers_count": 1,
"name": "google.com",
"recentoffers_count": 1,
"sid": "988008555566649",
"url": "http://google.com"
,
"moredetails"
.
.
] details
[
]
"model": "abc",
"weight": "127",
"price_currency": "USD",
"features":
.
'
"model": "abc",
"weight": "127",
"price_currency": "USD",
.
.
.
我正在为此使用this 示例或教程
它的调用 json 来自 this url
他正在用这个 json 对象 jsonarray = jsonobject.getJSONArray("worldpopulation");
解析数据
所以我从上面的 url 获取数据如何解析这么多 json 数据,因为我只想要 json 数组的 2 或 3 个字段。
请帮忙,.. 举个有效的例子,..for above,..
【问题讨论】:
你解析json的代码在哪里? 只是好奇...为什么没有 GSON? 嗨,Raghunandan 先生.. 我给了一些网址,请通过它,.. 我现在不知道如何在这个例子中解析上面的 json developer-android-tutorial.blogspot.in/2013/07/… 你好,先生在这个例子中developer-android-tutorial.blogspot.in/2013/07/… 他没有使用任何类型的库,比如 GSON,.. 只是解析数据,......我已经准备好了基于上述示例的代码,所以我没有想要任何更改,我只想解析表单 url,.. 谢谢 Perroloco 先生,.. 这可能会有所帮助***.com/a/20513759/2389078 【参考方案1】:您可以使用 gson 库。有一个例子 here!
【讨论】:
【参考方案2】:因为它是嵌套的 json 并且你没有指定你需要哪些字段所以很难回答 将此类用作您需要显示数据的参考类使用方法, 它将返回数组的第一个对象。
公共类解析器
public String getData()
String content = null;
String result = "";
InputStream is = null;
// http get
try
HttpClient httpclient = new DefaultHttpClient();
String webUrl = "your url";
HttpGet httppost = new HttpGet(webUrl);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
catch (Exception e)
Log.d("LOGTAG", "Error in http connection " + e.toString());
// convert response to string
try
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
sb.append(line + "\n");
is.close();
result = sb.toString();
Log.d("LOGTAG", "Result :" + result);
catch (Exception e)
Log.d("LOGTAG", "Error converting result " + e.toString());
// parse json data
try
JSONArray jarray = new JSONArray(result);
JSONObject jobj = jarray.getJSONObject(jarray.getInt(0));
content = jobj.getString("key");//key=name of the field you require
catch (Exception e)
Log.d("LOGTAG", e.toString());
return content;
【讨论】:
【参考方案3】:我看到了您的评论...您不想更改代码。但是与使用 Gson 相比,自己解析 json 非常慢。而且 gson 的使用非常简单,您只需要创建简单的 pojo 类,它将整个 json 转换为您可以在任何地方使用的 java 对象。这也是一种巧妙的做法。here is an example
【讨论】:
以上是关于如何在 android 中解析来自 url 或 restful 服务的大量 JSON 数据?没有 GSON的主要内容,如果未能解决你的问题,请参考以下文章
如何在android中调用localhost的webservice(来自wamp或xampp服务器)?
如何在 Swift 3 中解析来自 URL 的 JSON 数据
Android - 使用 JSOUP 解析 JS 生成的 url