Pracuję nad aplikacją na Androida. W mojej aplikacji muszę przekonwertować ciąg na obiekt Json, a następnie przeanalizować wartości. Sprawdziłem rozwiązanie w stackoverflow i znalazłem podobny problem tutaj link
Rozwiązanie jest takie
`{"phonetype":"N95","cat":"WP"}`
JSONObject jsonObj = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}");
Używam tego samego w moim kodzie. Mój sznurek jest
{"ApiInfo":{"description":"userDetails","status":"success"},"userDetails":{"Name":"somename","userName":"value"},"pendingPushDetails":[]}
string mystring= mystring.replace("\"", "\\\"");
A po wymianie uzyskałem taki wynik
{\"ApiInfo\":{\"description\":\"userDetails\",\"status\":\"success\"},\"userDetails\":{\"Name\":\"Sarath Babu\",\"userName\":\"sarath.babu.sarath babu\",\"Token\":\"ZIhvXsZlKCNL6Xj9OPIOOz3FlGta9g\",\"userId\":\"118\"},\"pendingPushDetails\":[]}
kiedy wykonuję JSONObject jsonObj = new JSONObject(mybizData);
Otrzymuję poniższy wyjątek JSON
org.json.JSONException: Expected literal value at character 1 of
Proszę, pomóż mi rozwiązać mój problem.
Odpowiedzi:
Usuń ukośniki:
źródło
JSONArray obj = new JSONArray(json);
. Następnie możesz użyć pętli for do iteracji po tablicy.{"Fat cat":"meow"}
.to jest praca
źródło
Spróbuj tego:
źródło
Aby uzyskać JSONObject lub JSONArray z String, stworzyłem tę klasę:
Tutaj, aby pobrać JSON:
Przykład:
źródło
[
lub{
sprawdzić, czy jest to tablica, czy obiekt. Wtedy nie ryzykowałbyś obu wyjątków, tylko ten odpowiedni.po prostu spróbuj tego, w końcu to działa dla mnie:
źródło
Potrzebujesz tylko linii kodu, jak poniżej:
źródło
Oto kod i możesz zdecydować, który
(zsynchronizowany) StringBuffer lub szybszy StringBuilder ma być używany.
Benchmark pokazuje, że StringBuilder jest szybszy.
źródło
Może niżej jest lepiej.
źródło