Это странная проблема.Я понимаю, что JSON должен быть неупорядоченным, и реализация java.lang.JSONObject специально упоминает, что он неупорядочен.
Однако, это озадачивает меня, потому что я ожидаю, как я вызову put ();Методы это должно держать мой порядок.Возможно, это противоречит тому, что я только что сказал в начале.
Я использую JSON для связи с веб-службой WCF, которая требует, чтобы я включил ключ __type для обозначения типа сложного объекта, который я отправляю.
Я призываю вас попробовать это:
JSONObject object = new JSONObject();
try {
object.put("__type", "Value1");
object.put("SecondKey", "Value2");
object.put("ThirdKey", "Value3");
}
catch (JSONException e) {
e.printStackTrace();
}
Вывод в журнале: {"ThirdKey": "Value3", "__ type": "Value1", "SecondKey": "Value2"}
Теперь я понимаю, что реализация использует HashMap, поэтому порядок не поддерживается.Но при вызове службы WCF ключ __type ТРЕБУЕТСЯ быть первым, чтобы десериализация произошла в службе.Как мне этого добиться?Некоторое время я использовал простые строки для отправки на веб-сервис, который работает нормально.Тем не менее, это неприемлемо, так как это некрасиво и сложно поддерживать.
Пожалуйста, посоветуйте, как со стороны Java, так и со стороны WCF, как мне решить эту проблему.
Спасибо!