Я использую классы Gson в своих приложениях для Android, чтобы сгладить выходы и отправить их через REST на сервер и обратно с помощью HTTP-сообщений и ответов. Он всегда работал хорошо.Проблема с отправкой гиперссылки через json
Но в новом приложении, которое я пишу, я пытаюсь сделать то же самое, но используя SMS-сообщения вместо HTTP-сообщений. Например, у меня есть класс ...
class LocReturn
{
public String error; //one char y = error
public String accuracy;
public String hyperlink;
public String stationary; //one char y = stationary
public String speedmph;
public String speedkph;
public String bearing;
}
Прежде чем сгладить класс, строка гиперссылки получит следующее значение. , ,
http://maps.google.com/maps?z=17&t=h&q=loc:31.7898,-111.0354
Однако, когда я исследую строку json, я вижу, что гиперссылка была изменена. , ,
http://maps.google.com/maps?z\u003d17\u0026t\u003dh\u0026q\u003dloc:31.7898,-111.0354
Кроме того, отправка SMS получает исключение NullPointer.
Код, отправляющий SMS-сообщение. , ,
Gson gson = new Gson();
String jsonstring = gson.toJson(myReturn);
String SMSBody = "###2" + jsonstring;
DebugLog.debugLog("Mole is sending Back: " + " num= " + GlobalStuff.Mobileno + " SMSBody= " + SMSBody, false);
SmsManager
.getDefault()
.sendTextMessage(GlobalStuff.Mobileno, null, SMSBody, null, null);
DebugLog.debugLog("After SMS Send " + SMSBody, true);
finish();
Таким образом, (1) Я не могу понять, почему я получаю NullPointer и (2) почему гиперссылка получения изменилась и это имеет ничего общего с ним. Спасибо, Gary EDIT: новое создание объекта JSON ...
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
действительно сохранить гиперссылку от изменения, однако NullPointerException продолжается. Это определенно строка sendText, которая вызывает исключение, поскольку, когда я заменяю SMSBody для «hello world», он отлично работает. Содержание SMSBody является ...
###2{"accuracy":"Excellent","bearing":"","error":"n","hyperlink":"http://maps.google.com/maps?z=17&t=h&q=loc:31.7898,-111.0353","speedkph":"","speedmph":"","stationary":"y"}
это каким-то образом вызывая NullPointerException
Опубликовать вывод логарифма, показывающий NPE, и сообщить нам, какая строка кода вызывает его. – Squonk
Кроме того, попробуйте 'Gson gson = new GsonBuilder(). DisableHtmlEscaping(). Create();', чтобы предотвратить изменение кодировки. – Squonk