我正在將我們的系統與第三方集成。他們發送了他們期望的 JSON 示例。JSON 對我來說似乎不合適。users 物件有一個電子郵件地址,看起來像是用作參考型別的成員名稱而不是值型別的成員名稱。換句話說,它不應該是一個用戶陣列,陣列中的每個專案都是用戶物件,其中 "email": "[email protected]" 作為屬性之一?
我要問他們,但也想在這里檢查是否有人認為此 JSON 存在問題
{
"users": {
“[email protected]”: {
"First_Name": "John",
"Last_Name": "Doe",
"Member_Id": "XX9008000",
"Mailing_Address": {
"Street": "P O Box 111 ",
"City": "Red City",
"State": "CA",
"Zip": "99999"
}
},
"enrollments": [
{
"Student": "[email protected]",
"Course_Ids": "369,370"
}
]
}
}
我正在使用 Newtonsoft.Json 將 C# 物件轉換為 JSON。輸出的格式始終是參考型別的型別:參考型別的屬性/值列舉。
{"users":[{"name":"john","id":"a1"},{"name":"tom","id":"a2"}]}
或者
{"users":{"user1":{"name":"john","id":"a1"},"user2":{"name":"tom","id":"a1"}}}
但它永遠不可能是:
{"users":{"a1":{"name":"john"},"a2":{"name":"tom"}}}
因為 a1 和 a2 是值型別的值string Id
它可能是有效的 JSON 但可以通過序列化庫代碼獲得嗎?還是我必須手動構建它?
uj5u.com熱心網友回復:
忽略此處的參考型別(應該是“<..>”)->“[email protected]”,這是一個有效的 JSON,并且是此類物件的常見用途。
結構體不是物件陣列,而是物件的 id,在其內部是物件。
您需要一個 Dictionary<string, object> ,其中鍵可能是用戶名(= 電子郵件),值是用戶物件。
uj5u.com熱心網友回復:
對于第一個問題
它不應該是一組用戶嗎?
這是具有一個或多個元素的不同 json 回應的典型問題。
要生成 Json,最好堅持使用所謂的 Badger-Fish 表示法http://badgerfish.ning.com/,其中指出:
“嵌套元素成為嵌套屬性”,而“同一級別的多個元素成為陣列元素”,因此當有一個元素時,顯示一個屬性,但在多個元素的情況下顯示一個陣列”。
由于在同一級別只有一個“users”元素和一個“enrollments”元素,因此不應宣告任何陣列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/325837.html
