0

В Android 2.1 этоJSONObject.toString() дает другой результат в 2,2, чем в 2.1 (.Net Дата формат)

JSONObject o = new JSONObject(); 
o.put("MyDate", "/Date(1289334937639)/"); 
Log.d(TAG, o.toString()); 

производит

{"MyDate":"/Date(1289334937639)/"} 

, но в 2.2 он производит

{"MyDate":"\/Date(1289334937639)\/"} 

Я говорю с веб-службой .Net, поэтому версия 2.2 работает правильно для меня. Как сделать 2.1 производить то же самое без нарушения 2.2?

Благодарим за помощь.

ответ

0

Я закончил с следующее:

if (Build.VERSION.SDK_INT == 7) { 
    params = params.replaceAll("/", "\\\\/"); 
} 

где PARAMS это уже JSON преобразуется в строку. Уродливо, но это работает.

0

Получите последнюю версию JSON от http://www.json.org/java/ и интегрируйте ее в свой код. Думаю, вам просто нужно изменить свой импорт.

+0

Спасибо за предложение. Я думаю, что у меня есть последняя версия json в eclipse, но она похожа на эмулятор 2.1 (и я подтвердил это на дроиде motorola 2.1) использует другую версию, чем эмулятор 2.2. То есть один и тот же код (тот же импорт) производит два разных результата в зависимости от версии Android. Могу ли я заставить эмулятор/устройство использовать версию json, которую я хочу использовать? – 2010-12-23 18:59:46