JSON (JavaScript 객체 표기법)은 완전히 언어 독립적 인 텍스트 형식을 사용하고 이상적인 데이터 교환 형식 인 가벼운 데이터 교환 형식입니다. 한편 JSON은 JavaScript 기본 형식으로 JSON 데이터를 JavaScript에서 처리하기 위해 특별한 API 또는 툴킷이 필요하지 않음을 의미합니다.
Java의 많은 JSON 건설 및 구문 분석 도구는 www.json.org에 게시됩니다. 그중에서도 org.json과 json-lib는 비교적 간단합니다. 두 사람은 사용이 비슷하지만 여전히 약간의 차이점이 있습니다. 다음으로 org.json을 사용하여 JSON 데이터를 구성하고 구문 분석하는 방법의 예를 소개합니다.
JSON-LIB를 사용하여 JSON 데이터를 구성하고 구문 분석하는 방법에 대한 자세한 설명은 이전 블로그 게시물을 참조하십시오 : JAVA를 사용하여 JSON 데이터를 구성하고 구문 분석하는 두 가지 방법 (자세한 설명 1).
1. 소개
org.json 패키지는 콩, 컬렉션,지도, Java 어레이 및 XML 및 JSON을 변환하는 데 사용되는 또 다른 패키지입니다. 주로 JSON 데이터를 구문 분석하는 데 사용됩니다. 공식 웹 사이트 http://www.json.org/에 자세한 설명이 있습니다. 관심이 있으시면 공부할 수 있습니다.
2. Jar Dependency 패키지를 다운로드하십시오
여기에서 다운로드 할 수 있습니다
3. 기본 방법 소개
org.json은 콩으로 직접 변환 할 수 없으므로지도를 통해 변환해야합니다. 편의를 위해 JSON을지도와 콩으로 변환하는 데 사용되는 도구 클래스 JSONHELPER를 작성했습니다.
package com.json; import java.lang.reflect.method; import java.text.parseexception; import java.util.hashmap; import java.util.iterator; import java.util.map; import org.json.jsonexception; import org.json.jsonobject;/**** 1 : jovean to jovean to jovean to jovean to jovean to jovean to jsonexception; Javabean* 3 : JsonObject를 MAP으로 변환하십시오. javabean.getClass (). getDeclaredMethods (); for (메소드 메소드 : 메소드) {try (method.getName (). startSwith ( "get")) {String field = method.getName (); field.subString (field.indexof ( "get") + 3); value = method.invoke (javabean, (object []) null); result.put (field, null == value? "": value.tostring ());}} catch (exception e) {e.printstacktrace ();}} reture; 정적 맵 tomap (String Jsonstring)은 jsOnexception을 던지고 {jsonObject jsonObject = new JsonObject (jsongring); map result = new Hashmap (); iterator iterator = jsonobject.keys (); String key = null; String value = null; jsonobject.getString (key); result.put (key, value);} return result;}/*** Javabean 변환 jsonobjec (지도를 통해 전송)** @param bean* javabean* @return json object*/public static jsonobject tojson (Object Bean) {return new Jsonobject (tomap (bean)); javabean* @param data* map data*/public static object tojavabean (object javabean, map data) {method [] method = javabean.getclass (). 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*}/* jsonobeant to jsonobeN*}. javabean* @return json 객체* @throws parseexception* json parsing exception* @throws jsonexception*/public static void tojavabean (객체 javabean, string jsonstring) parseexception, jsonexception {jsonobject jsonobject = new jsonobject (jsonstring); tomap (jsonobject.tostring ()); Tojavabean (javabean, map);}} 4. 시연 예
테스트 할 몇 가지 기본 일반적인 방법은 다음과 같습니다
패키지 com.json; import java.text.parseexception; import java.util.arraylist; import java.util.hashmap; import java.util.list; import java.util.map; import org.json.jsonarray; import org.json.jsoneception; json-json.json.json.json.json.json.json.json. JSON DATA** @Author Alexia* @Date 2013/5/23**/public class orgjsontest {/*** Construct JSON Data** @return* @throws jsonexception*/public static string buildjson () jsonexception을 던졌습니다. map <string, string> map1 = new Hashmap <String, String> (); map1.put ( "name", "alexia"); map1.put ( "sex", "sex", "female"); map1.put ( "age", "23"); map <string, String> map2 = new Hashmap <String, String> (); "이름", "Edward"; "male"); map2.put ( "age", "24"); list <map> list = new arraylist <map> (); list.add (map1); list.add (map2); Employee = new Employee (); Employee.setName ( "wjl"); Employee.setSex ( "female"); new jsonAray. JSONARRAY (); Object : "); System.out.println (jo1.toString ()); // 직원 객체 jo.put ("map ", ja); jo.put ("Employee ", jo1.tostring ()); System.out.println ("/n 최종 구성 JSON 데이터 형식 "); system.out.println (jo.toString ()); return jo.tostring ();}/*** Parse JSON Data** @param JSONTRING* json data String* @throws jsonexception* @throws parseexception*/public void parsejson (문자열 jsonstemping) sonex jsonex, parseception jsonex, parseception jsonex, parseception jsonex, parseception. jsonObject (jsonstring); jsonarray ja = jo.getJsonArray ( "map"); system.out.println ( "/n parses json data in map :"); system.out.println ( "name :" + ja.getjsonobject ( "name") + "sex :") Age : " + ja.getJsonObject (0) .getInt ("age ")); String jsonst = jo.getString ("Employee "); Employee emp = new Employee (); JSONHELPER.TOJAVABEAN (emp, jsonst); System.out.println ("/n Parse JSON 데이터로의 데이터 : "); "섹스 :" + emp.getSex () + "age :" + emp.getage ());}/*** @param args* @throws jsonexception* @throws parseexception*/public static void main (string [] argss)은 Jsonexception, parseexception {// todo aut-generated method stubparsejson (buildjson (); 작업 결과는 다음과 같습니다
5. JSON-LIB와의 비교
JSON-LIB 및 ORG.JSON의 사용은 거의 동일합니다. 두 가지 차이점을 요약했습니다.
1. org.json은 JSON-LIB보다 훨씬 가볍습니다. 전자는 다른 JAR 패키지에 의존하지 않으며, 후자는 Lang, Logging, Beanutils, Collections 및 Ezmorph 및 Commons의 다른 구성 요소에 의존합니다.
2. JSON-LIB는 콩을 만들고 콩을 구문 분석 할 때 org.json보다 훨씬 편리합니다. JSON-LIB는 콩으로 직접 변환 할 수있는 반면 org.json은 콩으로 직접 변환 할 수 없으며 전송으로지도가 필요합니다. Bean을 JSON 데이터로 변환하는 경우 먼저 Bean을 맵으로 변환 한 다음 맵을 JSON으로 변환해야합니다.
요컨대, 같은 문장이 여전히 당신에게 가장 좋은 것입니다. 모든 사람은 필요에 따라 분석 할 방법을 선택해야합니다. 마지막으로 JSON 데이터를 분석하기위한 두 가지 도구를 소개하겠습니다. 하나는 온라인 도구 JSON Edit (http://braincast.nl/samples/jsoneditor/)입니다. 다른 하나는 Eclipse 플러그인 JSON 트리 분석기이며, 둘 다 매우 유용하며 모든 사람이 사용하는 것이 좋습니다!
위의 것은 편집자가 Java에 대해 JSON 데이터를 구성하고 구문 분석하기 위해 사용하는 두 가지 방법 (세부 설명)에 대한 관련 지식입니다. 나는 그것이 당신에게 도움이되기를 바랍니다!