替换Java中所有JSON密钥中的点

时间:2017-07-21 09:09:40

标签: java json parsing gson

例如,我们有这样的JSON,但是对于许多嵌套块可能会更复杂:

layout (binding = 0) uniform sampler1D tex1D;
layout (binding = 0) uniform sampler2D tex2D;

我希望将此JSON字符串中的所有点替换为另一个字符。我在这里找到了类似的解决方案:Replace whitespace in JSON keys但是这个解决方案无法处理ArrayList。你有建议如何处理吗?

如果我们用下划线替换点,那么期望的JSON应该是这样的:

{"TestKey": "TEST", "Test.dots": [{ "child.dot": "child.value.1"}, {"child.dot": "child.value 2"}] }

1 个答案:

答案 0 :(得分:0)

删除关键节点并重新添加

  jObject = new JSONObject(contents.trim());
  Iterator<?> keys = jObject.keys();

  while( keys.hasNext() ) {
         String key = (String)keys.next();
         if ( jObject.get(key) instanceof JSONObject ) {
               obj.put(key.replaceAll("\\.", ""), 
               obj.get(get(key)));
               obj.remove((key));
        }

}

迭代json获取密钥替换并删除并重新放置