1

私はAndroidでこのコードを持っています:

Map<String, String> idObject1 = new LinkedHashMap<String, String>();
            idObject1.put("Id", "Test1");
            idObject1.put("FirstName", "Test Name");
            idObject1.put("LastName", "Test Surname");
            idObject1.put("PhoneNumber", "12345");
Gson gson = new Gson();
json.put("ParticipantIds", gson.toJson(idObject1));
Log.d("Json", json.toString());
Log.d("ParticipantsJson", gson.toJson(idObject1).toString());

.putjsonオブジェクトは、メソッドを介して他のものも追加します。「ParticipantIds」キーで混乱しているだけです。

json.toString()

出力

{"ParticipantIds":"{\"Id\":\"Test1\",\"FirstName\":\"Test Name\",\"LastName\":\"Test Surname\",\"PhoneNumber\":\"12345\"}",

gson.toJson(idObject1).toString());

出力

{"Id":"Test1","FirstName":"Test Name","LastName":"Test Surname","PhoneNumber":"12345"}

jsonオブジェクトに渡された\ときにjsonオブジェクトのオカレンスを削除する必要があります。idObject1必ずしもGsonを使用する必要はありません。私はそれを機能させるためにGsonを使用しただけです。私も試しました:

json.put("ParticipantIds", idObject1);

そして、JSON-Simpleを使用してそれを渡してみました。私は常に\エスケープ文字を取得します。私はそれをやってみて.toString()idObject1それからあらゆる方法.replace.replaceAll方法をやってみました。動作しません!

4

1 に答える 1

2

JsonStringを取得すると、以下に示すようにそのエスケープシーケンスを置き換えます。これは、エスケープシーケンスを削除するために機能します。

  json.toString().replaceAll("\\\\","");
于 2012-06-18T13:33:52.603 に答える