2017-09-25 11 views
1

以下のコードを見てください。キー「サンプル」のJSONObjectを蓄積し、この[[] "文字列を配列に変換します

値は両方put & accumulate関数は空の配列[]に変換された文字列"[]"

あります。

import net.sf.json.JSONObject; 

public class sample { 
    public static void main(String[] args){ 

     JSONObject resObj = new JSONObject(); 
     resObj.put("sample","[]"); 
     System.out.println(resObj); 

    } 
} 

出力:

{"sample":[]} 

私はそれ( "[]")としての価値を求めています。 like:

{"sample":"[]"} 

この問題を解決するにはどうすればよいですか?

更新:

上記の例では、単に問題を説明することです。

実際には大きなXMLから私はJSONを生成しています。 生成されたJSONに問題はありません。

JSON文字列全体を渡して&ファンクションをこの問題に直面している間に渡します。

+0

大括弧をエスケープしようとしましたか? – Amit

+0

なぜあなたは '[]'を二重引用符で囲むのですか?出力から、リストがJSON形式の一部であるので、JSONObjectは空のリストとして '' [] ''を考慮することは論理的です。 '\\'でエスケープしようとしましたか? –

+0

'resObj.put(" sample "、" \ "[] \" ");'これを試してみてください。 – procrastinator

答えて

0

使用しているjson-libライブラリはかなり古い実装で、「公式」org.json見つけることができる1 hereとMaven

<!-- https://mvnrepository.com/artifact/org.json/json --> 
<dependency> 
    <groupId>org.json</groupId> 
    <artifactId>json</artifactId> 
    <version>20170516</version> 
</dependency> 

を使用してみてくださいそして、

import org.json.JSONObject; 
System.out.println(new JSONObject().put("sample","[]")); 

は正常になります出力

{"sample":"[]"} 
関連する問題