1. JSON 소개
XML과 유사한 JSON (JavaScript 객체 표기법)은 데이터 교환 형식입니다. 예를 들어, Java가 XML을 사용하는 것 외에도 JavaScript에 데이터를 생성하는 경우 JSON을 사용할 수도 있습니다.
XML보다 JSON의 장점은 표현이 매우 간단하다는 것입니다. 공식 웹 사이트 : http://www.json.org/
JSON은 ajax의 x입니다 (즉, XML을 대체 할 수 있음). ------ JSON의 창립자로부터;
참고 : JSON은 문서 형식이 아니며 *.json 문서가 없습니다. 일반적으로 JSON 형식 문서는 TXT에 있으며 XML은 표준 일 수 있습니다.
JSON 온라인 편집자 : http://tools.vevb.com/tools/json/json_editor.htm
2. JSON 데이터 구조
JSON에는 두 가지 데이터 구조가 있습니다.
(1) 객체라고도하는지도; {......}
(2) 배열; [......]
즉, 모든 JSON 객체는 이러한 형식으로 표시되어야합니다.
1. 맵
간단히 말해서, 그것은 자바의지도입니다. 이름 값 쌍이 제공되고 이름과 값은 ":"두 개의 맵은 ",", ", 일반 표현은 다음과 같습니다.
{ 'key1': 'value1', 'key2': 'value2'}
다음은 공식 웹 사이트 사진입니다.
2. 아레
일반적인 의미의 배열은 다음과 같이 일반적인 형태입니다.
[ 'arr1', 'arr2', 'arr3'];
다음은 공식 웹 사이트 사진입니다.
그림의 값은 다음과 같습니다.
요약 :
(1) JSON에는 두 가지 유형의 데이터 구조가 있습니다.
(2) 물체가 배열에 중첩 될 수있는 것과 같이 중첩 될 수 있습니다.
(3) 기억 : 객체는 {}로 표시되고 배열은 []로 표시됩니다.
3. JSON 및 XML 변환의 예
위에서 언급 한 XML은 JSON 패키지로 변환 할 수 있습니다.
1. 간단한 XML
XML 형식 :
<person> <name> xiazdong </name> <ge> 20 </age> </person>
JSON 형식 :
{ "이름": "Xiazdong", "Age": 20}2. 복잡한 XML
XML 형식 :
<섹션> <title> 책 </title> <서명> <저자 이름 = "author-1"/> <book price = "$ 11"/> </signing> <서명> <저자 이름 = "author-2"/> <book price = "$ 22"/> </signing> </section>
JSON 형식 :
"섹션": "제목": "book", "signing": [{<span style = "white space : pre"> </span ": {"name ":"author-1 "},"book ": {"book1 ":"price ":"$ 11 "}},"{이름 ":"title ","book ",", "},"sitle ": "price": "$ 22"}} <span style = "화이트 공간 : pre"> </span>]}}참고 : XML의 속성은 또한 JSON의지도로 표시됩니다.
4. JSON 패키지
JSON 패키지를 사용하려면 JSON 패키지의 소스 코드를 다운로드 하여이 코드를 Eclipse 프로젝트에 추가하여 호출 할 수 있습니다.
API 문서를 보려면 http://www.json.org/java/index.html을 참조하십시오.
JSON 패키지에서 가장 일반적으로 사용되는 두 개의 클래스는 JsonObject 및 JsonArray이며 각각 두 개의 데이터 구조를 나타냅니다.
1. jsonobject 코드 인스턴스
패키지 com.xiazdong.json; 가져 오기 weibo4j.org.json.jsonarray; 가져 오기 weibo4j.org.json.jsonobject; public class test {public static void main (String [] args)은 예외 {jsonobject jsonobj = new jsonobject ( "{ 'name': 'xiazdong', 'age': 20}"); 문자열 이름 = jsonobj.getString ( "name"); int age = jsonobj.getint ( "age"); System.out.println (이름+":"+age); }}2. JSONARRAY 코드 인스턴스
JSONARRAY ARRAY = NEW JSONARRAY (String Str); // 문자열을 JSONARRAYINT 길이로 변환합니다. 길이 .length (); // 배열 길이를 반환합니다.
패키지 com.xiazdong.json; 가져 오기 weibo4j.org.json.jsonarray; 가져 오기 weibo4j.org.json.jsonobject; public class test {public static void main (String [] args)은 예외를 던졌습니다 {jsonarray jsonarray = new JsonArray ( "[{ 'name': 'xiazdong', 'age': 20}, { 'name': 'xzdong', 'age': 15}]"); for (int i = 0; i <jsonarray.length (); i ++) {문자열 이름 = jsonarray.getJsonObject (i) .getString ( "name"); int age = jsonarray.getjsonobject (i) .getint ( "age"); System.out.println ( "name ="+name); System.out.println ( "age ="+age); }}} 3. 중첩 JSONOBJECT 및 JSONARRAY 코드 인스턴스
패키지 com.xiazdong.json; 가져 오기 weibo4j.org.json.jsonarray; 가져 오기 weibo4j.org.json.jsonobject; public class test {public static void main (String [] args)은 예외 {string str = "{ 'name': 'xiazdong', 'age': 20, 'book': [ 'book1', 'book2']"; jsonobject obj = 새로운 jsonobject (str); System.out.println (obj.getJsonArray ( "Book"). GetString (0)); }}4. Jsonstringer 코드 예제
Jsonstringer는 JSON 형식 텍스트를 신속하게 빌드하여 파일로 쓸 수있는 문자열로 변환하는 데 사용될 수 있습니다.
Jsonstringer는 JSONWRITER의 서브 클래스입니다.
jsonstringer는 일반적으로 Object (). key (). value (). key (). value (). endobject ()를 통해 구성됩니다.
개체 ()는 객체가 시작 되었음, 즉 {;
endobject ()는 객체가 종료되었음을 나타냅니다. 즉, 추가};
배열 ()은 배열이 시작 되었음, 즉 [;
endarray ()는 배열이 종료되었음을 나타냅니다. 즉, 하나를 추가합니다.
키 ()는 키를 추가하는 것을 의미합니다.
값 ()은 값을 추가하는 것을 의미합니다.
패키지 com.xiazdong.json; 가져 오기 weibo4j.org.json.jsonstringer; public class jsonstringerdemo {public static void main (string [] args)은 예외 {jsonstringer stringer = new Jsonstringer (); String str = stringer.object (). key ( "name"). System.out.println (str); }} 복잡한 JSON 형식 쓰기
패키지 com.xiazdong.json; import java.io.file; import java.io.filereader; 가져 오기 weibo4j.org.json.jsonarray; 가져 오기 weibo4j.org.json.jsonobject; 가져 오기 weibo4j.org.json.jsonstringer; 가져 오기 weibo4j.org.json.jsonstringer; 가져 오기 weibo4j.org.json.jsontkener; public class jsonstringerdemo {public static void main (string [] args)은 예외 {jsonstringer js = new Jsonstringer (); jsonobject obj2 = 새로운 jsonobject (); jsonobject obj3 = 새로운 jsonobject (); jsonobject obj4 = 새로운 jsonobject (); obj4.put ( "title", "book1"). put ( "price", "$ 11"); obj3.put ( "book", obj4); obj3.put ( "author", new JsonObject (). put ( "name", "author-1")); jsonobject obj5 = 새로운 jsonobject (); jsonobject obj6 = 새로운 jsonobject (); obj6.put ( "title", "book2"). put ( "price", "$ 22"); obj5.put ( "book", obj6); OBJ5.PUT ( "저자", New JsonObject (). put ( "name", "author-2")); JSONARRAY OBJ7 = NEW JSONARRAY (); obj7.put (obj3) .put (obj5); obj2.put ( "제목", "책"); obj2.put ( "서명", obj7); js.Object (). 키 ( "세션"). 값 (obj2) .endoBject (); System.out.println (js.toString ()); printwriter out = new printwriter (new FileOutputStream (1.txt)); out.println (js.toString ()); }} 위의 코드는 다음 JSON 형식을 생성합니다.
{ "section": { "title": "book", "signing": [{ "author": { "name": "author-1"}, "book": { "title": "book1", "price": "$ 11"}}, "저자": { "name": "author-2"}, "book"{ "}}"}} "}"{ "}} }}5. jsontokener 코드 예제
JSONTOKENER는 JSON 형식의 파일을 읽는 데 사용됩니다.
jsonobject obj = new jsonobject (new Jsontokener (java.io.reader)); 파일에서 jsonobject를 읽을 수 있습니다.
JSONARRAY OBJ = NEW JSONARRAY (New JsonArray (java.io.reader)); 파일에서 jsonarray를 읽을 수 있습니다.
{ 'name': 'xiazdong', 'book': [ 'book1', 'book2']} 패키지 com.xiazdong.json; import java.io.file; import java.io.filereader; 가져 오기 weibo4j.org.json.jsonobject; import weibo4j.org.json.jsontokener; public class jsonstringerdemo {public static void main (string [] args)은 예외를 던졌습니다 {jsonobject obj = new JsonObject (new JsonObject (new JsonObject (new filereader (새 파일 ( "1.txt"))); System.out.out.println ( "Book"); Getstring (1)). 복잡한 JSON 형식의 코드 읽기 :
{ "section": { "title": "book", "signing": [{ "author": { "name": "author-1"}, "book": { "title": "book1", "price": "$ 11"}}, "저자": { "name": "author-2"}, "book"{ "}}"}} "}"{ "}} }} 패키지 com.xiazdong.json; import java.io.file; import java.io.filereader; 가져 오기 weibo4j.org.json.jsonobject; import weibo4j.org.json.jsontokener; public class jsonstringerdemo {public static void main (string [] args)은 예외 {jsonobject obj = new JsonObject (new JsonObject (new JsonTokener (new FilerEader (새 파일 ( "1.Txt"))); System.out.println (obj.getJsonObject ( "section"). getJsonArray ( "서명"). getJsonObject (0). getString ( "name");요약 :
1 Java에서 JSON 형식 문자열은 단일 따옴표로 가장 잘 표시됩니다.
2. jsonobject+jsontokener를 사용하여 JSON 형식 파일 개체를 읽습니다.
3. printwriter+jsonstringer를 사용하여 JSON 파일을 작성하십시오.
참고 : 원래 JsonWriter와 함께 글을 쓰고 싶었지만 성공하지 못했습니다. 그래서 나는 Jsonstringer+printwriter 만 사용하여 쓸 수 있습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.