2017-07-21 4 views
0

内のすべてのJSONのキーでドットを交換して、私たちはこのようにJSONを持っているが、それは多くのネストされたブロックと、より複雑になることができます:私は他の文字については、このJSON文字列にすべてのドットを置き換えたいは、例えば、Javaの

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

。私はここで似たような解決策を見つけました:Replace whitespace in JSON keysしかし、この解決法はArrayListで扱えません。あなたはそれをどのように扱うべきか提案がありますか?

{"TestKey": "TEST", "Test_dots": [{ "child_dot": "child.value.1"}, {"child_dot": "child.value 2"}] } 
+0

uは、このJSONデータを与えて、あなたのコードを投稿することができ、再び入れますJSONを超える

反復?私はあなたが望むようにJSONデータを与えるためにコードを変更する必要があります。 –

+0

これは問題です - JSONは常に同じではないので、どのオブジェクトにもマッピングできません。私はドットを削除する堅牢なソリューションが必要です。 –

答えて

-1

s.replaceAll( "\。"、 "_") 例:

String s = "{\"TestKey\": \"TEST\", \"Test.dots\": [{ \"child.dot\": \"child.value.1\"}]}"; 
System.out.println(s.replaceAll("\\.", "_")); 

プリント:

我々はアンダースコアでドットを交換する場合は、JSONは次のようになります理想の

{ "とtestkey": "TEST"、 "Test_dots":[{ "child_dot": "child_value_1"}]}

+0

それはあなたが値を壊すのは悪い解決策です。 –

+0

あなたの投稿は言う:このJSON文字列内のすべてのドットを別の文字に置き換えたい – jbwt

+0

json文字列ではなくJSONキー内のすべてのドットを置き換える。 –

0

DELET電子キーのノードとは、追加再び

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)); 
     } 

}キーを交換し、削除し、

+0

このJSONキーのすべてのドットを別の文字に置き換えたい言及された文字列は例にすぎません。私が言及したように、最終的なJSONははるかに長いです。私はすべてのJSONキーの一般的な解決策が必要です。 –