将JSON字符串中的重复项转换为数组

时间:2016-04-25 23:37:28

标签: java json jsonobject

我的要求是将重复的术语转换为json字符串中的数组。

    {  
   "ExtendedData":{  
      "OrderRecord":{  
         "ABC_OrderRG":{  
            "ABC_OrderRGLvl1":{  
               "ABC_OrderRGLvl1String":"A"
            },
            "ABC_OrderRGLvl1":{  
               "ABC_OrderRGLvl1String":"B",

            },
         }
      }
   }
}

我想将重复的术语"ABC_OrderRGLvl1"转换为数组,就像这样。

 {            
   "ExtendedData":{  
      "OrderRecord":{  
         "ABC_OrderRG":{  
            "ABC_OrderRGLvl1":[  
               {  
                  "ABC_OrderRGLvl1String":"A"
               },
               {  
                  "ABC_OrderRGLvl1String":"B",

               }
            ]
         }
      }
   }
}

我一直在使用org.json.JSONObject,它在putOnce中失败并且出现重复的Key错误。

我能想到的解决方案是编写自己的解析器。有没有更好的建议或任何现有的实用程序?

1 个答案:

答案 0 :(得分:0)

首先解析这样的JSON的结果可能是不可预测的 RFC 其中说

  

当对象中的名称不唯一时,接收此类对象的软件的行为是不可预测的

这样做的一种方法是使用Jackson Streaming API。实例化jsonparser并通过令牌读取json令牌并编写自己的逻辑来处理重复键 http://wiki.fasterxml.com/JacksonInFiveMinutes