> 웹 프론트엔드 > JS 튜토리얼 > Json 객체와 Json 문자열의 직렬화 및 역직렬화를 구문 분석하는 예

Json 객체와 Json 문자열의 직렬화 및 역직렬화를 구문 분석하는 예

WBOY
풀어 주다: 2022-08-08 15:40:34
앞으로
2217명이 탐색했습니다.

이 기사에서는 Json 객체와 관련된 문제를 주로 소개하는 javascript에 대한 관련 지식을 제공합니다. JavaScript 객체 표기법은 데이터 전송을 위한 텍스트 정보 구문을 저장하고 교환하는 데 사용됩니다. JSON은 XML보다 더 강력하고 더 빠르고 쉽습니다. 분석해 보겠습니다. 모든 사람에게 도움이 되기를 바랍니다.

Json 객체와 Json 문자열의 직렬화 및 역직렬화를 구문 분석하는 예

【관련 권장사항: javascript 비디오 튜토리얼, web front-end

Json

JavaScript Object Notation -JavaScript
텍스트 정보를 저장하고 교환하는 구문, 데이터 전송을 위한 구문은 JSON이 JSON보다 낫습니다. XML 더 작고, 더 빠르고, 더 쉽게 구문 분석할 수 있습니다.

var person = {"name": "张三", age: 23, 'gender': true};var ps = [{"name": "张三", "age": 23, "gender": true},
          {"name": "李四", "age": 24, "gender": true},
          {"name": "王五", "age": 25, "gender": false}];
로그인 후 복사

Json string

var b='{"name":"2323","sex":"afasdf","age":"6262"}';//json字符串
 console.log(b);//{"name":"2323","sex":"afasdf","age":"6262"}
  alert(typeof(b));//string
로그인 후 복사

Serialization

데이터 구조나 객체를 바이너리 문자열(바이트 시퀀스)로 변환하는 과정을 데이터 전송에 사용합니다. (데이터를 백엔드 @responseBody를 사용하여 json 문자열로 변환하는 데 사용됩니다.)

  • 프런트 엔드에는 json 개체와 json 문자열이 있습니다
  • 백 엔드에는 개체와 json 문자열이 있습니다

백엔드는 Java 개체입니다. 데이터를 JSON 형식으로 전송하려면 직렬화 작업을 수행합니다.
Java 개체를 네트워크를 통해 전송하거나 하드 디스크에 저장하려면 먼저 직렬화해야 합니다.
직렬화 후 json 문자열이 됩니다.

백엔드에서는 컨트롤러에 @reponseBody 주석을 추가하여 서비스 계층에서 얻은 Java 객체를 json 형식으로 변환합니다.
프런트엔드에서 전달된 json 형식 데이터를 수신하려면 컨트롤러의 요청 매개변수 앞에 @reponseBody를 추가하세요.

프런트엔드 직렬화 및 역직렬화

  • json 개체를 json으로 직렬화 문자열: JSON.stringify(json 개체) – 프런트 엔드는 데이터를 직렬화하여 백엔드로 전달합니다.
  • Deserialization: json 문자열을 개체로 역직렬화합니다. JSON.parse(str) – 직렬화된 데이터는 백엔드

마지막에 직렬화 및 역직렬화

  • 직렬화는 Java 객체 -> json 문자열입니다.
  • Deserialization은 json 문자열->java 객체입니다

백엔드 직렬화 및 역직렬화 방법 중 하나입니다

이 ObjectMapper 객체는 jackson 패키지 아래에 있으며, 이는 그의 종속성

       <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.3</version>
        </dependency>
로그인 후 복사
//类属性,

private static final ObjectMapper MAPPER = new ObjectMapper();

//序列化-----userMapList是List<user>的格式,现在我们需要将List集合序列化为json字符串

MAPPER.writeValueAsString(userMapList);

//反序列化---json格式的字符串要反序列化为对象

MAPPER.readValue(你要反序列化的json字符串,new TypeReference<要反序列化为什么对象类型,例如 User.class>() {});
로그인 후 복사

Serialization: Js의 객체를 Json 형식으로 변환합니다. 직렬화의 두 가지 매개변수: 필터와 옵션.

var person = {
username: ‘luohao’,
password: 123456,
location: ‘whu’
}
로그인 후 복사

매개변수는 배열입니다. 배열에 나타나는 속성만 직렬화되고 다른 속성은 무시됩니다.

var json = JSON.stringify(person, [‘username’, ‘password’]);
console.log(json);
{“username”:“luohao”,“password”:123456}
로그인 후 복사
var person = {
username: ‘luohao’,
password: 123456,
location: ‘whu’,
hometown: ‘wuhan’,
}
var json = JSON.stringify(person, function filter(key, value) {
switch(key) {
case ‘location’: return undefined;
case ‘hometown’: return undefined;
default: return value;
}
});
console.log(json);

{“username”:“luohao”,“password”:123456}
로그인 후 복사

JSON.stringify()의 세 번째 매개변수는 전송된 데이터를 더 읽기 쉽도록 들여쓰기된 공백 수를 나타냅니다.

var person = {
username: ‘luohao’,
password: 123456,
location: {
province: ‘hubei’,
city: ‘wuhan’,
county: ‘qichun’
},
hometown: ‘wuhan’,
}
var json = JSON.stringify(person, function filter(key, value) {
switch(key) {
case ‘hometown’: return undefined;
default: return value;
}
});
console.log(json);
{“username”:“luohao”,“password”:123456,“location”:{“province”:“hubei”,“city”:“wuhan”,“county”:“qichun”}}
로그인 후 복사
var person = {
username: ‘luohao’,
password: 123456,
location: {
province: ‘hubei’,
city: ‘wuhan’,
county: ‘qichun’
},
hometown: ‘wuhan’,
}
var json = JSON.stringify(person, function filter(key, value) {
switch(key) {
case ‘hometown’: return undefined;
default: return value;
}
}, 2);
console.log(json);

{
“username”: “luohao”,
“password”: 123456,
“location”: {
“province”: “hubei”,
“city”: “wuhan”,
“county”: “qichun”
}
}
로그인 후 복사

【관련 추천: javascript 비디오 튜토리얼, web front-end

위 내용은 Json 객체와 Json 문자열의 직렬화 및 역직렬화를 구문 분석하는 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
es6
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿