我有一个大的 json 页面,其中包含 url:http://akhilmadanan.tk/Akhil/database.php。当我使用普通的 json 解析方法解析这个页面时,它显示“OutOfMemoryError”。为此,我听说了 GSON。请任何人帮助我了解如何使用 GSON 从下面的页面读取数据。任何教程?
问问题
2767 次
3 回答
2
这是一个很好的教程:
http://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html
您还可以查看他们的官方用户指南:
https://sites.google.com/site/gson/gson-user-guide
希望这可以帮助 :-)
于 2012-12-03T06:53:10.317 回答
2
与其返回所有数据,不如将其分成块?这将在处理时需要更少的内存。
那是假设您可以访问数据库级别/响应。
于 2012-12-03T06:53:40.793 回答
1
您绝对可以访问其他人提供的有用的链接
简而言之,您可以在 lib 文件夹中添加 GSON 库。并像这样使用。
Gson gson=new Gson();
从 json 中获取对象
Model model=gson.fromJson(json,Model.class);
转换为 json
String json=gson.toJson(model);
我运行你的代码,有 3010 个对象
[
{
"cust_no":"70105615002",
"cust_name":"akhil",
"address":"kajffjkhfhhkjsd",
"area":"58695",
"ranges":"4586",
"plot":"69896",
"multifactor":"85758",
"electricity_meterno":"7895",
"water_meterno":"69358",
"gas_metrno":"78956",
"traffic_code":"4587855",
"last_meter":"58695",
"previous_reading":"25638",
"date":"589687",
"current_usage":"789654",
"current_balance":"45876",
"last_recipt":"236584"
},....
现在制作一个等效于上述名称的模型,例如
@SerializedName("cust_no")
private Long custNo;
@SerializedName("cust_name")
private Long custName;
..........
记得添加一个相同类类型的列表,例如
@SerializedName("custname")
private List<Customer> customerList;
并生成该 Customer 类的 getter 和 setter;
在这之后
像这样解析你的数据
CustomerModel customerModel=gson.fromJson(json,Customer.class);
您在 customerModel 中获取所有数据;
要访问数据,只需使用该类的列表。
List<Customer> customerList=customerModel.getCustomerList();
Log.v("APP_NAME",""+customerList.size());
于 2012-12-03T07:00:37.530 回答