Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Другие темы раздела
Java Что быстрее сравнить, строку или integer? https://www.cyberforum.ru/ java/ thread2684299.html
есть много строк вида: "83273885690";"100000372967409";"200000269854191" мне надо сравнить значения в этих строках что будет быстрее сравнивать их как строки или перегонять в инт и сравнивать...
Авторизация selenium под разными ролями при page object Java
Всем здравия. Вопрос простой, но интересна какая-либо конкретная реализация или, возможно какие-то уже существуют правила... В общем, дабы не плодить сущности. Суть: допустим, есть форма...
Сериализация Java
Возможно, я далеко не первый кто задаёт этот вопрос, но гугление мне не принесло решения. У меня есть некоторый класс, в котором описано много логики и тп, в этом же классе я описываю...
Java Получить одно уникальное значение хэш из нескольких других Подскажите, как получить одно уникальное значение из нескольких разнородных переменных? Например uniqueValue = someFunction(String name, Integer amount, Double length, Boolean isAvailable) Раньше... https://www.cyberforum.ru/ java/ thread2683351.html
Java Определить простой компьютера https://www.cyberforum.ru/ java/ thread2681211.html
1)Как можно определить простой компьютера в течении 3 минут? под простоем понимается а)компьютер не пользуется, не смотрится фильм, не слушается музыка и так далее. я так понимаю , можно по...
Java Подскажите пожалуйста литературу по программированию антивирусов на языке Java
Хочу научиться писать собственные антивирусы на языке Java platform подскажите пожалуйста учебную литературу
Хочу написать антивирус со встроенным файерволом для защиты от угроз в интернете на языке Java Java
Хочу посмотреть образец программного кода где его можно взять
Java Сохранить/вывести тип в рантайме Добрый день. Есть такая штука: import com.google.gson.reflect.TypeToken; new TypeToken<T>(){}.getType(); Она позволяет сохранять тип и использовать в рефлексии. Нужно написать такой метод,... https://www.cyberforum.ru/ java/ thread2679414.html
Java Какой ноутбук выбрать для программирования на Java? https://www.cyberforum.ru/ java/ thread2677309.html
На будущее хотел узнать, какая относительно недорогая модель ноутбука или устаревающая б.у., которую можно поискать для покупки с рук, поддерживает установку дополнительной планки памяти, достаточной...
Java Разработка перечня артефактов и протоколов проекта Разработка перечня артефактов и протоколов проекта https://www.cyberforum.ru/ java/ thread2675566.html
Модератор
1456 / 448 / 149
Регистрация: 11.08.2017
Сообщений: 1,525
07.08.2020, 12:40 0

Взять внутренний JSON как строку

07.08.2020, 12:40. Просмотров 2542. Ответов 5
Метки (Все метки)

Ответ


Java
1
2
3
4
5
6
7
8
9
10
11
12
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
 
public class Inside {
    public static void main(String[] args) {
        String test = "{\"f1\":\"qql\", \"f2\":1, \"target\": [{\"client\":{\"id\":124}},{}]}";
        System.out.println(test);
        JsonObject jsonTree = JsonParser.parseString(test).getAsJsonObject();
        System.out.println(jsonTree.get("target"));
        
    }
}
Не пойдет? Правда это по сути ручной парсинг json, если десириализовать, то можно с дженериками, но у меня с ними (без указания внутреннего класса если) съедаются кавычки внутри

Добавлено через 15 минут
Либо пример сериализации/десериализации с дженериками
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import java.util.ArrayList;
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.lang.reflect.Type;
import com.google.gson.reflect.TypeToken;
 
public class Inside {
    public static void main(String[] args) {
        Gson gson = new GsonBuilder().create();
        //сериализация с пустыми объектами
        WrapperTarget<Record> wt = new WrapperTarget<>();
        wt.f1 = "qq1";
        wt.f2 = 1;
        wt.target = new ArrayList<>();
        wt.target.add(new Record());
        wt.target.add(new Record());
        String json = gson.toJson(wt);
        System.out.println(json);
        //сериализация с заполненными
        wt.target.clear();
        Record r = new Record();
        r.client = new Client();
        r.client.id = 52;
        wt.target.add(r);
        wt.target.add(r);
        json = gson.toJson(wt);
        System.out.println(json);
        //десериализация
        String test = "{\"f1\":\"qql\", \"f2\":1, \"target\": [{\"client\":{\"id\":124}},{}]}";
        Type type = new TypeToken<WrapperTarget<Record>>(){}.getType();
        WrapperTarget<Record> wt2 = gson.fromJson(test, type);
        System.out.println(wt2.target);
        System.out.println(wt2.target.get(0).client.id);
        System.out.println(wt2.target.get(1).client);
    }
}
 
class WrapperTarget<T>{ 
String f1;
Integer f2;
List<T> target;
}
 
class Record {
    Client client;
}
 
class Client {
    int id;
}


Вернуться к обсуждению:
Взять внутренний JSON как строку
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.08.2020, 12:40
Готовые ответы и решения:

Как взять информацию из JSON list или array?
В этом JSON есть cnt для чего-то и list, а в нём ,.. Как зайти в эти 0,1 и их взять. Я сделал,...

Как взять строку из файла
Нужно в веб форму вставлять поочередно емайлы из файла. Как это сделать. Как я понимаю...

Как взять предыдущую строку из dataGridView?
Добрый день! Нужно сложить значения ячеек: текущая строка(второй столбец) + предыдущая(второй...

Как взять строку из ListBox по индексу?
Подскажите начинающему как можно присвоить переменной s значение 1-й строки листбокса? Я пробовал...

__________________
Помогаю в написании курсовых работ и дипломов здесь.
5
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.