我正在开发RESTful Android移动客户端。我的应用程序和服务器之间的信息交换是使用JSON。因此,我现在有点困惑,选择哪种数据结构代表JSON响应和数据,因为它们很多。我刚刚停止使用LinkedHashMap ,但是据我所知,JSON是无序的。在整个互联网上,我看到人们为此使用Map 或HashMap 。那么问题来了-为此目的最好的数据结构是什么?或者,如果没有明确的答案-使用数据结构的利弊。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 我不同意第一个答案。 REST范式的开发使您可以处理对象,而不是操作。对我而言,最明智的方法是在客户端声明bean并解析json响应并通过它们进行请求。我建议使用GSON library进行序列化/反序列化。 JsonObject / JsonArray几乎从来不是最佳选择。也许,如果您提供您将要使用的操作的示例,我们也许可以提供更精确的帮助。 编辑:让我也给出一些GSON示例。让我们使用此线程来比较不同的库。在大多数情况下,REST服务会通信对象。假设您发布了一个关于商店的产品帖子。{ "name": "Bread", "price": 0.78, "produced": "08-12-2012 14:34", "shop": { "name": "neighbourhood bakery" }}然后,如果您声明以下bean:public class Product { private String name; private double price; private Date produced; private Shop shop; // Optional Getters and setters. GSON uses reflection, it doesn't need them // However, better declare them so that you can access the fields}public class Shop { private String name; // Optional Getters and setters. GSON uses reflection, it doesn't need them // However, better declare them so that you can access the fields}您可以使用以下方法反序列化json:String jsonString; // initialized as you canGsonBuilder gsonBuilder = new GsonBuilder();gsonBuilder.setDateFormat("MM-dd-yyyy HH:mm"); // setting custom date formatGson gson = gsonBuilder.create();Product product = gson.fromJson(jsonString, Product.class);// Do whatever you want with the object it has its fields loaded from the json另一方面,您可以更轻松地序列化为json:GsonBuilder gsonBuilder = new GsonBuilder();gsonBuilder.setDateFormat("MM-dd-yyyy HH:mm"); // setting custom date formatGson gson = gsonBuilder.create();String jsonString = gson.toJson(product); (adsbygoogle = window.adsbygoogle || []).push({});
10-08 12:18