을 사용하여 자동으로 값을 할당합니다. 참고: GET 메서드 및 POST 메서드 이와 다르게 매개변수가 있는 경우 매개변수 값이 ASCII 문자(예: 중국어)가 아닌 경우 GET 매개변수를 encodeURI 인코딩해야 합니다. 그렇지 않으면 서버에서 수신한 데이터가 왜곡됩니다. 복잡한 Json 데이터 제출{ name: Yangjun, age:27 }과 같은 간단한 Json 형식 데이터 복잡한 Json 형식 데이터는 실제로 다음과 같은 Json 중첩입니다. 양준, 나이:27, 아이:[{이름:양케, 나이:1},{이름:양빈, 나이:2}]}
이런 복잡한 Json 형식의 데이터를 제출해야 한다면, 그런 다음 이 Json 형식 문자열을 기반으로 .net 개체로 시퀀스합니다. 예를 들어 다음 데이터를 제출하고 싶습니다.
클라이언트:
코드
});
서버 측:
1. Json 문자를 .net 객체로 역직렬화하기 위해 .net 버전 3.5 이상과 함께 제공되는 DataContractJsonSerializer를 사용합니다. 클래스:
코드
/// /// Json 직렬화 및 역직렬화를 위한 도우미 메서드
///
공개 클래스 JsonHelper
{
/// ; >/// JSON 직렬화: 객체를 Json 형식 문자열로 직렬화
///
공개 정적 문자열 JsonSerializer(T t)
{
var ser = new DataContractJsonSerializer (typeof(T));
var ms = new MemoryStream();
ser.WriteObject(ms, t)
string jsonString = Encoding.UTF8.GetString(ms .ToArray()); 🎜>ms.Close();
return jsonString;
}
///
/// JSON 역직렬화: Json 형식 문자열에 따라 개체
/ //
public static T JsonDeserialize(string jsonString)
{
var ser = new DataContractJsonSerializer(typeof(T))
var ms = new MemoryStream(Encoding) .UTF8.GetBytes(jsonString));
var obj = (T)ser.ReadObject(ms);
return obj;
}
}
2. 해당 개체로 역직렬화해야 하므로 먼저 두 개의 개체 클래스를 구성합니다. 각 클래스 앞의 특성 수정자와 클래스 필드에 주의하세요.
Code
public class MProductProperty
{
[DataMember(Order = 0, IsRequired = true)]
public int ProductId { set; get; }
[DataMember(Order = 1, IsRequired = true)]
public List
}
공용 클래스 MProperty
{
[DataMember(Order = 0, IsRequired = true)]
public int PropertyId { set; , IsRequired = true)]
공용 문자열 PropertyType { 집합; }
[DataMember(Order = 2, IsRequired = true)]
공용 문자열 PropertyValue }
}
3. Json 데이터를 받아 처리하는 웹 방식:
코드
코드 복사
public string PostProductPropertyList()
{
string jsonString = HttpContext.Current . Request["propertyList"];
var productProperty = JsonHelper.JsonDeserialize(jsonString); // productProperty가 MProductProperty 객체로 성공적으로 역직렬화되었습니다.
//수신 성공 표시 반환
return "postsuccess" ;
}