как анализировать модель в теге компонента json с помощью javascript [duplicate]

Я был бы более склонен сначала конкатенацию кадров данных, а затем превратить этот фреймворк в формат excel. Чтобы поместить два кадра данных вместе бок о бок (в отличие от одного над другим), выполните следующее:

writer = pd.ExcelWriter('test.xlsx',engine='xlsxwriter')   # Creating Excel Writer Object from Pandas  
workbook=writer.book
df.to_excel(writer,sheet_name='Validation',startrow=0 , startcol=0)   
new_df = pd.concat([df, another_df], axis=1)
new_df.to_excel(writer,sheet_name='Validation',startrow=0 , startcol=0)   
29
задан AurA 17 May 2013 в 12:32
поделиться

6 ответов

Легкий способ сделать это без аннотаций - использовать библиотеку Gson

. Просто:

Gson gson = new Gson();
String json = gson.toJson(listaDePontos);
47
ответ дан Tombart 21 August 2018 в 10:19
поделиться
  • 1
    Отличная маленькая библиотека и работает с dot42, если вы импортируете jar, но она помещает все эти _backingFields_ в JSON. Я пробовал DataMembers, но это не помогло. Поэтому я вернулся к StringBuilder и просто сделал это способом KISS. – ppumkin 7 August 2014 в 22:38
  • 2
    Это очень хорошо для объектов малого размера. Много проблем возникает, когда объекты сложны, особенно если дочерние объекты ссылаются на родительские объекты – MFARID 8 April 2015 в 04:37
  • 3
    @MFARID вы знаете альтернативу для Android? как JSON.Net для .Net? – Val Okafor 8 April 2015 в 15:28
  • 4
    @ValOkafor Нет извините – MFARID 8 April 2015 в 22:17

Вы делаете http-запрос

HttpResponse response = httpclient.execute(httpget);           
HttpEntity entity = response.getEntity();

inputStream = entity.getContent();

BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
            StringBuilder sb = new StringBuilder();

Вы читаете Buffer

String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
Log.d("Result", sb.toString());
result = sb.toString();

Create JSONObject и передать строку результата в конструктор:

JSONObject json = new JSONObject(result);

Разделите результаты json на нужные вам переменные:

String usuario= json.getString("usuario");
int idperon = json.getInt("idperson");
String nombre = json.getString("nombre");

Не забудьте импортировать:

import org.json.JSONObject;
3
ответ дан Carlos Landeras 21 August 2018 в 10:19
поделиться
  • 1
    У этого solutiuon действительно низкая производительность на Android (ну, мы не говорим о небольшом JSON, в данном случае это неважно, но небольшие объемы данных имеют тенденцию к росту) - вы выделяете слишком много объектов (JSON PArser использует модель DOM) и память. Вы должны перейти в режим синтаксического анализа без выделения буферов. Также GSON ir JAckson - ваш друг здесь – Konstantin Pribluda 17 May 2013 в 13:05
  • 2
    Я использую этот код в некоторых производственных приложениях, и он работает как прелесть, и вам не нужно использовать сторонние библиотеки. – Carlos Landeras 17 May 2013 в 13:10
  • 3
    Несомненно, этот подход работает. Он работает как прелесть для небольшого количества JSON. Я также использовал этот подход, но мои списки высшего уровня теперь больше, а распределение резервного буфера, дерева DOM и затем анализ JSON-объектов стали непригодными. Теперь я не выделяю буферы и просто использую парсинг pull с homegrown databindung. – Konstantin Pribluda 17 May 2013 в 13:13
  • 4
    Интересный @ KonstantinPribluda, в моем случае я не перехожу слишком много данных. Какой метод вы рекомендуете ?. Не могли бы вы дать мне несколько ссылок? благодаря – Carlos Landeras 17 May 2013 в 13:14
  • 5
    Память и распределение ресурсов дорогостоящее на android (гораздо больше, чем сервер). Рекомендации просты - старайтесь избегать выделения памяти и объектов. Используйте синтаксический анализатор, например, GSON, и используйте привязку к ней поверх нее (либо от GSON, либо от моей небольшой рамки: github.com/ko5tik/jsonserializer - см. Примерные тесты для примера) – Konstantin Pribluda 17 May 2013 в 13:39

GSON прост в использовании и имеет относительно небольшой объем памяти. Если вы заметите, что у вас еще меньше занимаемой площади, вы можете захватить:

https://github.com/ko5tik/jsonserializer

Которая является крошечной оберткой вокруг разделили библиотеки GSON только для POJO

3
ответ дан Konstantin Pribluda 21 August 2018 в 10:19
поделиться

«Ссылка» Java-реализация Шона Лири здесь на github . Убедитесь, что у вас установлена ​​последняя версия - разные библиотеки загружают версии с ошибками старых версий с 2009 года.

Java EE 7 имеет JSON API в javax.json, см. Javadoc . Из того, что я могу сказать, у него нет простого метода для сортировки любого объекта в JSON, вам нужно построить JsonObject или JsonArray.

import javax.json.*;

JsonObject value = Json.createObjectBuilder()
 .add("firstName", "John")
 .add("lastName", "Smith")
 .add("age", 25)
 .add("address", Json.createObjectBuilder()
     .add("streetAddress", "21 2nd Street")
     .add("city", "New York")
     .add("state", "NY")
     .add("postalCode", "10021"))
 .add("phoneNumber", Json.createArrayBuilder()
     .add(Json.createObjectBuilder()
         .add("type", "home")
         .add("number", "212 555-1234"))
     .add(Json.createObjectBuilder()
         .add("type", "fax")
         .add("number", "646 555-4567")))
 .build();

JsonWriter jsonWriter = Json.createWriter(...);
jsonWriter.writeObject(value);
jsonWriter.close();

Но я предполагаю, что другой библиотеки, такие как GSON, будут иметь адаптеры для создания объектов, реализующих эти интерфейсы.

2
ответ дан Ondra Žižka 21 August 2018 в 10:19
поделиться

Самый быстрый и простой способ, которым я нашел Json-ify POJO, - использовать библиотеку Gson . Это сообщение в блоге дает краткий обзор использования библиотеки.

6
ответ дан ryanbateman 21 August 2018 в 10:19
поделиться

После публикации JAVAEE8 теперь вы можете использовать новый JAVAEE API JSON-B ( JSR367 )

Зависимость Maven:

<dependency>
    <groupId>javax.json.bind</groupId>
    <artifactId>javax.json.bind-api</artifactId>
    <version>1.0</version>
</dependency>

<dependency>
    <groupId>org.eclipse</groupId>
    <artifactId>yasson</artifactId>
    <version>1.0</version>
</dependency>

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.json</artifactId>
    <version>1.1</version>
</dependency>

Вот некоторый снимок кода:

Jsonb jsonb = JsonbBuilder.create();
// Two important API : toJson fromJson
String result = jsonb.toJson(listaDePontos);

JSON-P также обновлен до 1.1 и более прост в использовании. JSON-P 1.1 ( JSR374 )

Зависимость Maven:

<dependency>
    <groupId>javax.json</groupId>
    <artifactId>javax.json-api</artifactId>
    <version>1.1</version>
</dependency>

<dependency>
    <groupId>org.glassfish</groupId>
    <artifactId>javax.json</artifactId>
    <version>1.1</version>
</dependency>

Вот моментальный снимок кода запуска:

String data = "{\"name\":\"Json\","
                + "\"age\": 29,"
                + " \"phoneNumber\": [10000,12000],"
                + "\"address\": \"test\"}";
        JsonObject original = Json.createReader(new StringReader(data)).readObject();
        /**getValue*/
        JsonPointer pAge = Json.createPointer("/age");
        JsonValue v = pAge.getValue(original);
        System.out.println("age is " + v.toString());
        JsonPointer pPhone = Json.createPointer("/phoneNumber/1");
        System.out.println("phoneNumber 2 is " + pPhone.getValue(original).toString());
0
ответ дан wodong 21 August 2018 в 10:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: