2014-11-14 2 views
0

Я работаю с JSON на сервере в первый раз. Я пытаюсь создать объект, который выглядит следующим образом:Какой самый быстрый способ построить строку JSON в java?

{ 
    columnData : { 
    column1 : {"foo": "bar", "value" : 1 }, 
    }, 
    rowData : { 
    row1 : {"type" : "integer", "value" : 1}, 
    } 
} 

По сути, это два уровня JSON объект, в котором у меня есть все объекты на верхнем уровне. Все на втором уровне будет строкой, целой или плавающей. Я нашел несколько способов, я мог бы идти о создании этой строки JSON:

  • Построить строку непосредственно

Я могу пройти через одну линию, в то время и создать гигантскую строку. Это кажется громоздким.

  • Использование gson

Я могу построить карту (или класс?), Который имеет структуру JSON, я хочу, а затем использовать gson преобразовать в строку JSON.

  • Использование JSONObject

Это будет работать как this question. я только что нашел этот пример, и мне нравится, как просто работать с JSON выглядит в нем, но я не уверен, что это лучший способ чтобы пойти, чем другие варианты.

Я довольно новичок в Java, поэтому я не уверен, что такое компромисс между этими методами. Я знаю, что я буду потенциально очень быстро вызывать этот метод для загрузки данных в клиент, поскольку пользователь прокручивает таблицу в webapp, поэтому мне бы хотелось, чтобы все было как можно быстрее. Каков самый быстрый способ построить строку JSON, которую я тогда отправлю обратно клиенту?

+1

Возможный дубликат [Как сгенерировать строку JSON в Java?] (Http://stackoverflow.com/questions/13340138/how-to-generate-json-string-in-java) – ha9u63ar

+1

Просто чтобы дать некоторую перспективу здесь : На данный момент в вашем дизайне просто выберите тот, который вы найдете наиболее простым для кода и отладки. Очень маловероятно, что ваше преобразование JSON будет вашим узким местом производительности, если вы создаете приложение GUI. – Krease

+0

@hagubear: У этих вопросов есть ответы, которые предлагают как JSONObject, так и gson как способы сделать это. Какой путь самый быстрый? – ckersch

ответ

1

В зависимости от того, что означает «самый быстрый». Быстро развивается или развивается с точки зрения производительности.

Самый быстрый на dev - это использование библиотеки для сериализации существующих структур данных непосредственно в JSON. Используйте следующую библиотеку.

http://flexjson.sourceforge.net

Производительности мудрых сравнений он соответствует Джексону и биение в некоторых случаях и уничтожает gson. Но это означает, что вы будете сериализовать свои структуры данных напрямую, а не сопоставлять их вручную с помощью JSONObject или что-то в этом роде.

Возможно, вы сможете получить более быструю транзакцию/сек, используя JSONObject вручную и сопоставляя свои структуры данных с ним. Вы можете получить более высокую производительность, но тогда вы не можете, потому что вам нужно обновить JSONObject и преобразовать данные в него. Затем разрешите рендеринг JSONObject. Можете ли вы написать написанный вручную код лучше, чем библиотека сериализации? Может быть, может и нет.

Смежные вопросы