6

私はJava http://json-lib.sourceforge.netのJSON-libライブラリを使用しています

JSONのように見える単純な文字列を追加したいだけです(ただし、ライブラリがjsonである可能性があることを自動的に認識して、文字列として扱うだけにしたくありません)。ライブラリのソースを調べると、醜いハックなしではそれを行う方法が見つかりません。

例:

JSONObject object = new JSONObject();
String chatMessageFromUser = "{\"dont\":\"treat it as json\"}";
object.put("myString", chatMessageFromUser);

object.toString()私たちに与えます{"myString":{"dont":"treat it as json"}}

そして私はただ持っていたい{"myString":"{\"dont\":\"treat it as json\"}"}

ソースコードを変更せずにそれを達成する方法は? このコードをユーザーからのチャット メッセージのトランスポートとして使用しているため、通常のチャット メッセージでは問題なく動作しますが、ユーザーがメッセージとして JSON 形式を入力すると、ここで説明されている JSON-lib のデフォルトの動作のためにメッセージが壊れます。

4

2 に答える 2

5

質問を正しく理解していれば、json-lib は、渡される文字列を解析する必要があるという前提でユニークだと思います。他のライブラリは通常、これを含める文字列として扱います (必要に応じて二重引用符とバックスラッシュをエスケープします)。つまり、期待どおりに機能します。

したがって、他のライブラリを検討することをお勧めします。 Jackson、 Gson も機能することをお勧めします。

于 2010-12-28T18:32:25.373 に答える
4

json-simpleJSONObject.escape()メソッドを提供します。

于 2010-12-28T15:39:30.503 に答える