JSON (javascript obtation)-это легкий формат обмена данными, который использует полностью независимый от языка формат текста и является идеальным форматом обмена данными. Между тем, JSON является нативным форматом JavaScript, что означает, что для обработки данных JSON в JavaScript не требуется никакого специального API или инструментария.
Многие инструменты JSON Construction and Sacking под Java опубликованы на www.json.org. Среди них org.json и json-lib относительно просты. Эти два похожи в использовании, но все еще есть некоторые различия. Далее мы представим пример метода использования org.json для построения и анализа данных JSON.
Для получения подробного объяснения методов построения и анализа данных JSON с использованием JSON-LIB, пожалуйста, обратитесь к моему предыдущему сообщению в блоге: два метода построения и анализа данных JSON с использованием Java (подробное объяснение 1)
1. Введение
Пакет org.json - это еще один пакет, используемый для преобразования бобов, коллекций, карт, массивов Java и XML и JSON. Это в основном используется для анализа данных JSON. Он имеет подробные объяснения на своем официальном веб -сайте http://www.json.org/. Если вы заинтересованы, вы можете изучить это.
2. Загрузите пакет зависимости JAR
Вы можете скачать его здесь
3. Введение в основные методы
Поскольку org.json не может напрямую конвертировать в бобы, его необходимо преобразовать через карты. Для удобства я написал здесь инструментальный класс JsonHelper, который используется для преобразования JSON с картой и бобами.
Пакет com.json; импорт java.lang.reflect.method; import java.text.parseexception; импорт java.util.hashmap; import java.util.iterator; импорт java.util.map; импорт org.json.jsonexcept Карта в Javabean* 3: преобразовать jsonObject в карту, javabean** @author alexia*/public class jsonHelper {/*** преобразовать Javabean в карту** @param javabean* javabean* @return map объект*/method static map tomap (объект javabean) {map result = hashmap (); javabean.getClass (). getDeclaredMethods (); for (метод метода: методы) {try {if (method.getName (). startSwith ("get")) {String Field = method.getName (); field = field.substring (field.indexof ("get") + 3); field = field. value = method.invoke (javabean, (object []) null); result.put (field, null == value? "": value.toString ());}} catch (Exception e) {e.printstacktrace ();}} return result;}/*** Convert json object* @param jsonobject* json* @truction* @trectore* @truction* @tructon* @truction* @truction* @@tructionshone* @@tructionshone* @pupret* @truction. Статическая карта томап (String JSonstring) Throws JSonexception {jsonObject jsonObject = new jsonObject (jsonstring); map result = new hashmap (); iterator iterator = jsonobject.keys (); string key = null; string = null; while (iter.hasnext ()) {key string). jsonobject.getString (key); result.put (key, value);} return result;}/*** преобразовать Javabean в jsonObject (передача через карту)** @param bean* javabean* @return json object*/public static jsonobject tojson (объект Bean) {return new jsonobject (tomap (bean); javabean* javabean* @param Data* MAP Data*/Public Static Object Tojavabean (Object Javabean, MAP Data) {Method [] method = javabean.getClass (). getDeclAredMethods (); для (метод метода: методы) {try {if method.getName (). startSwith ("set") {string work wield = field.substring (field.indexof ("set") + 3); field = field.tolowercase (). charat (0) + field.substring (1); method.invoke (javabean, new Object [] {data.get (field)});}} Catch (Exception e) {}} return javabean; javabean* @return json объект* @throhs parseexception* json sainsing exception* @throhs jsonexception*/public static void tojavabean (Object Javabean, String JSonstring) Throws ParseExcept tomap (jsonobject.tostring ()); tojavabean (javabean, map);}} 4. Демонстрационный пример
Вот некоторые основные общие методы для тестирования
пакет com.json; импорт java.text.parseexception; import java.util.arraylist; import java.util.hashmap; import java.util.list; импорт java.util.map; импорт org.json.jsonarray; импорт org.json.jsonexcept DATA** @author Alexia* @Date 2013/5/23***/Public Class Orgjsontest {/*** Construct JSON Data** @return* @Throws JSOnexception*/public Static StringJson () Throws JSonexception {// json format data parsing object jsonobject jo = new jsonobjuct (). String> map1 = new hashmap <string, string> (); map1.put ("name", "alectia"); map1.put ("sex", "nember"); map1.put ("Age", "23"); map <string> map2 = new hashmap <string, string> (); map2.put ("name", ", Edward"); "24"); List <Ap> list = new ArrayList <Map> (); List.Add (map1); list.add (map2); сотрудник сотрудника = новый сотрудник (); работник. SetName ("wjl"); employtee.setsex ("Женский Jsonarray (); ja.put (map1); system.out.println ("jsonarray объекта формат данных:"); system.out.println (ja.tostring ()); // конвертировать Javabean в JSON Data (требует транзита карты) jsonobject jo1 = jsonhelper.tojson (rapeeee); Объект сотрудника: «); System.out.println (jo1.toString ()); // Создание данных JSON, включая карту и данные JSON, содержащие объект сотрудника jo.put (« map », ja); jo.put (« работник », jo1. "); System.out.println (jo.toString ()); return jo.toString ();}/*** parse json data** @param jsonstring* json data string* @throws jsonexception* @throws parseexcept JsonObject (JSonstring); JsonArray JA = jo.getJsonArray («map»); System.out.println ("/n Parses data json в карту:"); system.out.println ("name:" + ja.getjsonobject (0) .getString ("name") + "sex:" + ja.getJobject (0). Возраст: « + ja.getjsonObject (0) .getInt (" age ")); string jsonstr = jo.getString (" Сотрудник "); сотрудник EMP = new Employee (); jsonHelper.tojavabean (emp, jsonstr); System.out.println ("/n Parse Json Data Into Combement: "); «Пол:» + emp.getsex () + «Возраст:» + emp.getage ());}/*** @param args* @throhs jsonexception* @throhs parseexception*/public static void main (string [] args) throws jsonexception, parseexception {// todo autogenerated method stubparsejson (}); Результаты работы следующие
5. Сравнение с JSON-LIB
Использование json-lib и org.json почти одинаково. Я суммировал два различия:
1. org.json намного легче, чем json-lib. Первый не полагается на какие -либо другие пакеты JAR, в то время как последние зависит от Lang, лесозаготовок, шагатура, коллекций и других компонентов Ezmorph и Commons.
2. Json-Lib гораздо удобнее, чем org.json, при создании бобов и бобов. JSON-LIB может напрямую конвертировать с бобами, в то время как Org.JSON не может напрямую конвертировать с бобами и требует карт в качестве транзита. Если вы конвертируете бобы в данные JSON, вы должны сначала преобразовать бобы в карты, а затем преобразовать карты в JSON, что более хлопотно.
Короче говоря, такое же предложение по -прежнему лучше для вас. Каждый должен выбрать, какой метод использовать для анализа его по мере необходимости. Наконец, я представлю два инструмента для анализа данных JSON: одним из них является онлайн -инструмент json Edit (http://braincast.nl/samples/jsoneditor/); Другой - плагин Eclipse Gress Analyzer, оба из которых очень полезны и рекомендуются для всех!
Выше приведено соответствующее знание двух методов (подробного объяснения), используемых редактором, чтобы представить вам о Java для построения и анализа данных JSON. Я надеюсь, что это будет полезно для вас!