如何在json数据中添加索引?

时间:2013-04-03 01:49:17

标签: android json gson datamodel

我有以下数据结构:

Class UserModel {
Long pkid;
String name;
public UserModel() {
this.pkid = new Long(1001);
this.name = "ABC";
}
}

现在我把它转换成了json:

UserModel usrObj = new UserModel();
Gson gson = new Gson();
String json = gson.toJson(userObj);

所以我的json字符串现在就像:

{  "pkid": 1001,
    "name": "ABC" }

但我需要创建json为

{"com.vlee.ejb.UserModel": [
{  "pkid": 1001,
    "name": "ABC" } ] }

我可以轻松创建一个类似的json:

{"userModel": [
{  "pkid": 1001,
        "name": "ABC" } ] }

当我面临使用dot创建索引的问题时。

我不确定如何添加密钥"com.vlee.ejb.UserModel"

2 个答案:

答案 0 :(得分:3)

    UserModel userObj = new UserModel();
    HashMap map = new HashMap();
    ArrayList array = new ArrayList();
    array.add(userObj);
    map.put(userObj.getClass().getName(), array);
    Gson gson = new Gson();
    String json = gson.toJson(map);
    System.out.println(json);

并输出: { “com.vlee.ejb.UserModel”:[{ “PKID”:1001, “姓名”: “ABC”}]}

答案 1 :(得分:0)

创建一个serializer类来自定义输出。这可能涉及创建和安排一些JsonElement子类实例。在这种情况下,您将使用JsonArray创建一个JsonObject作为其值之一,其中包含一个带有“pkid”和“name”内容的JsonObject。

假设您希望能够重新读取这些对象,同一个类也可以实现反序列化接口,在这种情况下,它将被赋予一个JsonElement实例,并且必须将它分开以构造所需的Java对象