웹 프론트엔드 JS 튜토리얼 JSON 클라이언트 측 및 서버 측 형식 변환_json

JSON 클라이언트 측 및 서버 측 형식 변환_json

May 16, 2016 pm 06:47 PM
고객 서버 측 형식 변환

여기서는 javascript의 구문에서 json을 파생시키고, 이를 기반으로 ajax 애플리케이션에서 JSON을 사용하는 방법을 살펴보겠습니다.
자바스크립트에 배열이 있다는 것은 누구나 알고 있습니다. 형식은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

var Beatles = ["Paul" ,"John","George","Ringo"];

위의 예는 배열 형식이며 다음과 동일합니다.
코드 복사 코드는 다음과 같습니다.

var Beatles =new Array ["Paul","John"," George","Ringo"];

다른 하나는 Objects입니다. 객체를 생성하는 방법은 다음과 같습니다.
코드 복사 코드는 다음과 같습니다.

var Beatles = {"Country":"England","YearFormed":1959,"Style":"Rock'n' Roll"}

위 생성 방법은 동일합니다. 다음과 같이 생성합니다.
코드 복사 코드는 다음과 같습니다.

var Beatles = new Object( );
Beatles.Country = "England";
Beatles.YearFormad =
Beatles.Style = " Rock'n'Roll";

다른 자바스크립트 객체와 동일 마찬가지로 속성은 '.' 또는 '[ ]'로 나타낼 수 있습니다.
객체는 다음과 같이 배열을 포함할 수 있습니다.
코드 복사 코드는 다음과 같습니다.

var Beatles = {
"국가":"잉글랜드",
"YeatFormed": 1959,
"Style" : "Rock'n'Roll",
"멤버":[ " Paul"," John","George","Ringo"]
}

배열에 객체를 포함할 수도 있습니다:
코드 복사 코드는 다음과 같습니다:

var Rockbands =[
{
"Name":"BeatLes",
" County": "England" ,
"YearFormed" : 1959,
"Style" : "Rock'n'Roll" ,
"Members" : ["Paul","John","George" ,"Ringo"]
},
{
"이름" ""Rolling Stones",
"국가":"England",
"연도":1962,
" 스타일": "Rock' n'Roll",
"멤버":["Mick"],"Keith","Charlie","Bill"]
}
]

JSON 공식 웹사이트에서는 다음과 같이 JSON을 설명합니다.
1. 가벼운 데이터 변환 형식
2. 사람이 읽고 쓰기 쉽습니다.
3. 🎜>JSON 구문 :
JSON은 일부 주니어 프로그래머에게는 읽고 쓰기가 어려울 수 있지만, 경험이 많은 사람들에게는 여전히 꽤 좋습니다(개인 의견)
JSON과 javascript의 구문은 비슷하지만 각각 그 중 객체는 변수에 할당될 수 없습니다. 즉, 객체가 아니라 문자열입니다. 변환은 eval()을 사용하여 수행할 수 있습니다. JavaScript의 기능은 안전상의 이유로 변환을 위해 json.js를 사용하는 것이 좋습니다. 가장 기본적인 두 가지 방법은 다음과 같습니다.
JSON.parse(strJSON) - JSON 문자열을 JavaScript 개체로 변환합니다.
JSON.stringify(objJSON) – JavaScript 개체를 JSON 개체로 변환하는 데 사용됩니다.
클라이언트 측에서의 데이터 변환인데, 서버 측에서는 어떻게 진행되나요? 이미 다양한 언어에 대한 아주 좋은 변환 라이브러리가 있습니다. 저는 .net에 가깝기 때문에 C#을 사용하여 JSON의 서버 측 변환을 수행하는 방법은 다음과 같습니다.
외국 형제가 .net에서 JSON을 변환하는 방법에 대해 꽤 좋은 글을 쓴 것을 봤습니다. JSON.NET과 Microsoft의 JavaScriptSerializer를 통합하므로 어떤 JSON 형식을 사용하더라도 기본적으로 처리할 수 있습니다.
이제 JSON 변환, JSON 생성 및 구문 분석을 위한 간단한 코드를 제공합니다.

코드 복사 코드는 다음과 같습니다.

공개 문자열 Serialize(객체 값)
{
Type type = value.GetType();

Newtonsoft.Json.JsonSerializer json = new Newtonsoft.Json.JsonSerializer();

json.NullValueHandling = NullValueHandling.Ignore;

json.ObjectCreationHandling = Newtonsoft.Json.ObjectCreationHandling.Replace;
json.MissingMemberHandling = Newtonsoft.Json.MissingMemberHandling.Ignore;
json.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;

if (type == typeof(DataRow))
json.Converters.Add(new DataRowConverter());
else if(type == typeof(DataTable))
json.Converters.Add(new DataTableConverter());
else if (type == typeof(DataSet))
json.Converters.Add(new DataSetConverter());

StringWriter sw = new StringWriter();
Newtonsoft.Json.JsonTextWriter 작가 = new JsonTextWriter(sw);
if (this.FormatJsonOutput)
writer.Formatting = Formatting.Indented;
else
writer.Formatting = Formatting.None;

writer.QuoteChar = '"';
json.Serialize(writer, value);

string 출력 = sw.ToString();
writer.Close();
sw.Close();

출력 반환;
}

공용 객체 Deserialize(string jsonText, Type valueType)
{
Newtonsoft.Json.JsonSerializer json = new Newtonsoft.Json.JsonSerializer();

json.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
json.ObjectCreationHandling = Newtonsoft.Json.ObjectCreationHandling.Replace; = Newtonsoft.Json.MissingMemberHandling.Ignore;
json.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;

StringReader sr = new StringReader(jsonText)
Newtonsoft.Json.JsonTextReader; JsonTextReader(sr);
객체 결과 = json.Deserialize(reader, valueType);
reader.Close();

결과 반환; >재NET.JSON의 基础上使사용JavascriptSeriazible来转换:



复代码
代码如下:internal class WebExtensionsJavaScriptSerializer : JSONSerializerBase, IJSONSerializer { public WebExtensionsJavaScriptSerializer(JSONSerializer serializer) : base(serializer)
{}

public string Serialize(객체 값)
{
JavaScriptSerializer ser = 새로운 JavaScriptSerializer();

목록 변환기 = 새로운 List();

if (값 != null)
{
유형 유형 = value.GetType();
if (type == typeof(DataTable) || type == typeof(DataRow) || type == typeof(DataSet))
{
converters.Add(new WebExtensionsDataRowConverter());
converters.Add(new WebExtensionsDataTableConverter());
converters.Add(new WebExtensionsDataSetConverter());
}

if (converters.Count > 0)
ser.RegisterConverters(converters);
}

return = ser.Serialize(value);
}
공용 객체 Deserialize(string jsonText, Type valueType)
{
// *** '동적' 비상수 유형 인스턴스와 함께 Reflection을 사용해야 함
JavaScriptSerializer ser = new JavaScriptSerializer ();


객체 결과 = ser.GetType()
.GetMethod("Deserialize")
.MakeGenericMethod(valueType)
.Invoke(ser, new object[1] { jsonText });
반환 결과;
}
}



내부 클래스 WebExtensionsDataTableConverter : JavaScriptConverter
{
공개 재정의 IEnumerable SupportedTypes
{
get { return new Type[] {typeof(DataTable)}; }
}

공용 재정의 객체 Deserialize(IDictionary Dictionary, Type type,
JavaScriptSerializer serializer)
{
throw new NotImplementedException();
}

下篇介绍如何在 asp.net 的环境下使用 json 和 dataTable 等的转换, 还有介绍使用 jQuery 的 ajax 调用 웹 서비스 的生成 json 、相当值得期待。 ^_^
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

VMware Horizon Client를 열 수 없습니다. [수정] VMware Horizon Client를 열 수 없습니다. [수정] Feb 19, 2024 pm 11:21 PM

VMware Horizon Client를 사용하면 가상 데스크톱에 편리하게 액세스할 수 있습니다. 그러나 때로는 가상 데스크톱 인프라에 시작 문제가 발생할 수 있습니다. 이 문서에서는 VMware Horizon 클라이언트가 성공적으로 시작되지 않을 때 취할 수 있는 해결 방법에 대해 설명합니다. VMware Horizon 클라이언트가 열리지 않는 이유는 무엇입니까? VDI 구성 시 VMWareHorizon 클라이언트가 열려 있지 않으면 오류가 발생할 수 있습니다. IT 관리자가 올바른 URL과 자격 증명을 제공했는지 확인하세요. 모든 것이 정상이면 이 가이드에 언급된 해결 방법에 따라 문제를 해결하십시오. Windows 컴퓨터에서 VMW가 열리지 않는 경우 VMWareHorizon 클라이언트가 열리지 않는 문제 수정

연결하는 동안 VMware Horizon 클라이언트가 정지되거나 정지됨 [수정] 연결하는 동안 VMware Horizon 클라이언트가 정지되거나 정지됨 [수정] Mar 03, 2024 am 09:37 AM

VMWareHorizon 클라이언트를 사용하여 VDI에 연결할 때 인증 중에 애플리케이션이 정지되거나 연결이 차단되는 상황이 발생할 수 있습니다. 이 문서에서는 이 문제를 살펴보고 이 상황을 해결하는 방법을 제공합니다. VMWareHorizon 클라이언트에 정지 또는 연결 문제가 발생하는 경우 문제를 해결하기 위해 수행할 수 있는 몇 가지 작업이 있습니다. 연결하는 동안 VMWareHorizon 클라이언트가 멈추거나 멈추는 문제 해결 VMWareHorizon 클라이언트가 Windows 11/10에서 멈추거나 연결에 실패하는 경우 아래 언급된 해결 방법을 수행하십시오. 네트워크 연결 확인 Horizon 클라이언트 다시 시작 Horizon 서버 상태 확인 클라이언트 캐시 지우기 Ho 수정

Win11에서 사진 형식을 변경하는 방법 Win11에서 사진 형식을 변경하는 방법 Jul 01, 2023 pm 04:05 PM

win11에서 사진 형식을 변경하는 방법은 무엇입니까? 이미지 파일은 다양한 형식으로 제공되며 각 형식마다 이미지 품질과 파일 크기가 다릅니다. 또한 이미지 처리를 위해 일부 이미지 소프트웨어를 사용할 때 호환성 제한으로 인해 이미지 형식이 필요합니다. 이미지 형식을 변환하려면 win11 시스템에서 이 작업을 어떻게 수행합니까? 많은 친구들이 자세한 작동 방법을 모릅니다. 편집자는 아래에 win11에서 C 드라이브를 포맷하는 단계를 정리했습니다. 관심이 있으시면 편집자를 따라 아래를 읽으십시오! win11 사진 형식을 수정하는 단계 1. 먼저 win11 데스크탑에서 형식을 수정하는 데 필요한 사진을 찾을 수 있습니다. 2. 사진 이름 끝에는

PHP MQTT 클라이언트 개발 가이드 PHP MQTT 클라이언트 개발 가이드 Mar 27, 2024 am 09:21 AM

MQTT(MessageQueuingTelemetryTransport)는 IoT 장치 간 통신에 일반적으로 사용되는 경량 메시지 전송 프로토콜입니다. PHP는 MQTT 클라이언트를 개발하는 데 사용할 수 있는 일반적으로 사용되는 서버측 프로그래밍 언어입니다. 이 기사에서는 PHP를 사용하여 MQTT 클라이언트를 개발하는 방법을 소개하고 다음 내용을 포함합니다. MQTT 프로토콜의 기본 개념 PHPMQTT 클라이언트 라이브러리의 선택 및 사용 예: PHPMQTT 클라이언트를 사용하여 게시 및

Vue 및 서버 측 통신 분석: 시간 초과 요청을 처리하는 방법 Vue 및 서버 측 통신 분석: 시간 초과 요청을 처리하는 방법 Aug 10, 2023 pm 01:51 PM

Vue와 서버 간의 통신 탐색: 시간 초과 요청 처리 방법 소개: Vue 개발 프로세스 중에 백엔드 서버와 통신하는 것은 매우 일반적인 상황입니다. 그러나 때때로 네트워크 지연이나 기타 이유로 인해 요청 시간이 초과될 수 있습니다. 이 기사에서는 Vue에서 시간 초과 요청을 처리하는 방법을 설명하고 해당 코드 예제를 제공합니다. 1. 요청에 Axios 사용 Vue에서는 일반적으로 Axios를 HTTP 클라이언트 라이브러리로 사용하여 네트워크 요청을 합니다. Axios는 요청을 보내는 일련의 방법을 제공하며

PHP를 사용하여 이미지 해상도 및 형식 변환을 조정하는 방법 PHP를 사용하여 이미지 해상도 및 형식 변환을 조정하는 방법 Aug 18, 2023 pm 09:45 PM

PHP를 사용하여 이미지 해상도 조정 및 형식 변환을 구현하는 방법 소개: 웹사이트 개발 시 이미지 해상도를 조정하고 이미지 형식을 변환해야 하는 경우가 종종 있습니다. 이 기사에서는 PHP를 사용하여 이러한 기능을 구현하는 방법을 소개합니다. 이미지 해상도 조정 이미지 해상도를 조정하면 페이지 로딩 속도를 최적화하고 대역폭 소비를 줄이는 데 도움이 될 수 있습니다. 다음은 PHPGD 라이브러리를 사용하여 이미지 해상도를 조정하기 위한 샘플 코드입니다: <?phpfunctionresizeImage($sourc

Baidu Netdisk 웹페이지에서 클라이언트를 시작할 수 없는 문제를 해결하는 방법은 무엇입니까? Baidu Netdisk 웹페이지에서 클라이언트를 시작할 수 없는 문제를 해결하는 방법은 무엇입니까? Mar 13, 2024 pm 05:00 PM

많은 친구들이 파일을 다운로드할 때 먼저 웹페이지를 탐색한 다음 클라이언트로 전송하여 다운로드합니다. 그러나 때때로 사용자는 Baidu Netdisk 웹 페이지에서 클라이언트를 시작할 수 없는 문제에 직면할 수 있습니다. 이 문제에 대해 편집자는 Baidu Netdisk 웹페이지에서 클라이언트를 시작할 수 없는 문제를 해결하기 위해 솔루션을 준비했습니다. 해결 방법 1. Baidu Netdisk가 최신 버전이 아닐 수 있습니다. Baidu Netdisk 클라이언트를 수동으로 열고 오른쪽 상단에 있는 설정 버튼을 클릭한 다음 버전 업그레이드를 클릭하세요. 업데이트가 없으면 다음 메시지가 나타납니다. 업데이트가 있으면 메시지에 따라 업데이트하세요. 2. Baidu Cloud Disk의 탐지 서비스 프로그램은 비활성화될 수 있습니다. 당사가 수동으로 또는 보안 소프트웨어를 사용하여 Baidu Cloud Disk의 탐지 서비스 프로그램을 자동으로 비활성화할 수 있습니다. 그것을 확인하시기 바랍니다

모바일 클라이언트란 무엇입니까? 모바일 클라이언트란 무엇입니까? Aug 16, 2023 pm 01:40 PM

모바일 클라이언트란 스마트폰에서 실행되는 애플리케이션을 말하며, 네이티브 클라이언트 또는 웹 클라이언트의 형태로 사용자에게 다양한 기능과 서비스를 제공합니다. 모바일 클라이언트는 오리지널 클라이언트와 웹 클라이언트의 두 가지 형태로 나눌 수 있으며, 네이티브 클라이언트는 특정 프로그래밍 언어와 개발 도구를 사용하여 특정 운영 체제용으로 작성된 애플리케이션을 말합니다. 는 운영 체제 제한 없이 다양한 장치에서 실행할 수 있지만, 네이티브 클라이언트에 비해 웹 클라이언트의 성능과 사용자 경험이 저하될 수 있습니다.

See all articles