-1

我有一个这种格式的 JSON 文件:

 title 1
 {
    "0" : 2,
    "1" : 5,
    "2" : 8        
  }
 title 2
 {        
    "1" : 44,
    "2" : 15,
    "3" : 73,
    "4" : 41
 }       

如您所见,索引是动态的 - 在标题 1 中它们是:“0”、“1”、“2”,而对于标题 2,它们是:“1”、“2”、“3”、“4”

我不知道如何使用 GSON 阅读此内容。我需要以某种方式将其转换为 java 对象,以便继续处理数据。任何帮助都是最受欢迎的。

4

1 回答 1

0

首先是页面上表示的 JSON 无效 JSON 无效,所以我的建议是基于休闲 JSON。只是给你充分的披露。

{
   "title 1":{
      "0":2,
      "1":5,
      "2":8
   },
   "title 2":{
      "1":44,
      "2":15,
      "3":73,
      "4":41
   }
}

选项1(不是我将如何解决这个问题)

这会将其序列化为您可以循环处理的通用对象。

new Gson().fromJson(yourJsonString,Object.class);

选项2(我认为最好的选择)如果您可以控制对象凸轮的方式,我会做这样的事情

{
   "listOfTitles":[
      {
         "title":[
            {
               "key":"0",
               "value":1234
            },
            {
               "key":"1",
               "value":12341234
            },
            {
               "key":"2",
               "value":123412341234
            }
         ],
         "titleName":"title 1"
      },
      {
         "title":[
            {
               "key":"0",
               "value":12341
            },
            {
               "key":"1",
               "value":123412
            },
            {
               "key":"2",
               "value":12
            },
            {
               "key":"3",
               "value":12341
            }
         ],
         "titleName":"title 2"
      }
   ]
}

这将允许您构建一个对象,例如...

public class YouObjectName{
   private ArrayList<Title> listOfTitles;
   private String titleName;
   //constructor

   //getters and setters
}

public class Title{
   private String key;

   private Integer value;

   //constructor

   //getters and setters
}

我会像 GSON 一样使用它

new Gson().fromJson(jsonString,YouObjectName.class);

希望能有所帮助。

于 2013-07-12T04:49:02.793 回答