Как извлечь значение из Json
Я получаю ответ String с сервера, как показано ниже.
{ "name": "Json", "detail": { "first_name": "Json", "last_name": "Scott", "age": "23" }, "status": "success" }
Я хочу получить значение First name. Как я могу это сделать? Заранее спасибо.
- org.json.JSON Исключение: Конец ввода символа 0
- Как остановить Chrome и Opera, сортируя объекты JSON по индексу ASC?
- Как написать пользовательский десериализатор JSON для Gson?
- json.Marshal (struct) возвращает "{}"
- Дезертирование абстрактного classа в Gson
- Правильный способ написать JSON deserializer весной или расширить его
- Безопасность Spring и аутентификация JSON
- Основное использование JSONPath в Java
- Как вернуть объект JSon
- Получить параметр, отправленный через jquery ajax в Java Servlet
- Как декодировать JSON с неизвестным полем с помощью Gson?
- Как использовать jackson для десериализации массива объектов
- итерация объекта json на Ngfor в угловом 2
см. этот код, что я использую в своем приложении
String data="{'foo':'bar','coolness':2.0, 'altitude':39000, 'pilot':{'firstName':'Buzz','lastName':'Aldrin'}, 'mission':'apollo 11'}";
Я получил это
JSONObject json = (JSONObject) JSONSerializer.toJSON(data); double coolness = json.getDouble( "coolness" ); int altitude = json.getInt( "altitude" ); JSONObject pilot = json.getJSONObject("pilot"); String firstName = pilot.getString("firstName"); String lastName = pilot.getString("lastName"); System.out.println( "Coolness: " + coolness ); System.out.println( "Altitude: " + altitude ); System.out.println( "Pilot: " + lastName );
Используйте анализатор JSON. На Java существует множество парсеров JSON.
Посмотрите раздел Java и найдите тот, который вам нравится.
Вставка моего кода здесь, это должно помочь. Он показывает пакет, который можно использовать.
import org.json.JSONException; import org.json.JSONObject; public class extractingJSON { public static void main(String[] args) throws JSONException { // TODO Auto-generated method stub String jsonStr = "{\"name\":\"SK\",\"arr\":{\"a\":\"1\",\"b\":\"2\"}}"; JSONObject jsonObj = new JSONObject(jsonStr); String name = jsonObj.getString("name"); System.out.println(name); String first = jsonObj.getJSONObject("arr").getString("a"); System.out.println(first); } }
Если вы не возражаете добавить зависимость, вы можете использовать JsonPath .
import com.jayway.jsonpath.JsonPath; String firstName = JsonPath.read(rawJsonString, "$.detail.first_name");
«$» указывает корень исходной строки json, а затем вы указываете путь к нужному полю. Это всегда возвращает строку. Вам нужно будет делать кастинг самостоятельно.
Имейте в виду, что он будет вызывать исключение PathNotFoundException во время выполнения, если указанный вами путь не существует.