1

我有一个大的 json 页面,其中包含 url:http://akhilmadanan.tk/Akhil/database.php。当我使用普通的 json 解析方法解析这个页面时,它显示“OutOfMemoryError”。为此,我听说了 GSON。请任何人帮助我了解如何使用 GSON 从下面的页面读取数据。任何教程?

4

3 回答 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 回答