다음 직렬화 방법의 차이점은 무엇입니까?
첫 번째 방법
JsonConvert.SerializeObject (목록 또는 데이터 테이블)
출력은
즉 (3) [대상, 대상, 대상]
Dim parent = Prtdata
Dim lGridColumns = New With {
Key .data = parent
}
Dim Setting = New JsonSerializerSettings
Setting.PreserveReferencesHandling = PreserveReferencesHandling.Objects
Dim jsonObject = JsonConvert.SerializeObject(lGridColumns, Formatting.Indented)
Return jsonObject
출력은
{
"data": [
{
"RecID": 2383,
"PrtStatus": 0,
"PtFilenum": 15090248,
"PrtFilenum": 13090701,
"FullName": "asdasd",
"DOB": "04 Oct 1985"
},
{
"RecID": 3387,
"PrtStatus": 1,
"PtFilenum": 15090248,
"PrtFilenum": 15120996,
"FullName": "marwam mohmmad saleem",
"DOB": "24 May 2017"
},
{
"RecID": 3388,
"PrtStatus": 1,
"PtFilenum": 15090248,
"PrtFilenum": 170227111,
"FullName": "asd dsf as a",
"DOB": "27 Feb 2017"
}
]
}
브라우저 콘솔에서 출력이 다르게 보이는 이유는 무엇입니까?
첫 번째 의견 으로 NewtonSoft.json 웹 사이트 에서 Serialization Guide 를 찾을 수 있습니다 . 제 대답에서는 이전에 더 정교한 버전의 의견을 제공합니다.
구현 된 항목 IEnumerable
(예 : 목록, 배열)을 직렬화하는 첫 번째 시나리오 는 Json에서 배열로 표시됩니다. 예 :
[{ "property": "value", "id": 0 }, {"property": "value", "id": 1}]
두 번째 시나리오의 경우, 예를 들어 당신이를 제공하고, 다른 여러 가지 일을하는 PreserveReferencesHandling
에 JsonSerializerSettings
또한 예를 들어, 직렬화 된 객체에 대한 모든 참조를 preveserve 것이다 :
[{"$id": 1, "title": "item1"}, {"$id": 2, "title": "item2", "previous": { "$ref": 1 }]
이렇게하면 역 직렬화 될 때 두 번째 개체에 속성 내부의 첫 번째 개체에 대한 참조가 포함됩니다 previous
.
당신이 다르게하고있는 또 다른 일은 Formatting.Indented
줄 바꿈과 들여 쓰기가있는 더 읽기 쉬운 json 문서를 만들을 제공 하는 것입니다. 이전 Json은 다음과 유사하게됩니다.
[{
"$id": 1,
"title": "item1"
},
{
"$id": 2,
"title": "item2",
"previous": {
"$ref": 1
}
}]
그리고 마지막으로 큰 차이점은 마지막 예에서 단일 객체를 직렬화한다는 것입니다. 이로 인해 공용 속성이 직렬화됩니다. 예 :
{
"data": [
...
]
}
data
직렬화중인 객체의 속성은 어디에 있습니까 ?
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다