如何使用NewtonSoft JSON反序列化爲此類型的對象?該結構包含屬性類型變量,但基於此結構使用NewtonSoft時,此屬性將是另一個類。如何使用NewtonSoft Json反序列化具有變量類型屬性的類?
下面的代碼示例:
public class RootProduct
{
public Package Package {get; set;}
}
public class Package
{
//Package has a property in which the class type should be changed in order to deserialize
public Package_id ThisValueIsVariable {get; set;}
}
public class Package_id
{
public string product_name {get; set;}
}
在這個包中,有必要發送的package_id,當接收到如在下面的結構中,場「的package_id」該查詢返回的數據查詢(作爲回報JSON)是在查詢中發送的這段代碼。
返回的JSON:
"Package": {
"Package_id": { //This is the value that changes according to the value passed in the query to JSON
"package_name": "my product name"
}
}
"Package": {
"SecondPackage_id": { //This is the value that changes according to the value passed in the query to JSON
"package_name": "my product name"
}
}
"Package": {
"ThirdPackage_id": { //This is the value that changes according to the value passed in the query to JSON
"package_name": "my product name"
}
}
UPDATE:
在上面的代碼只有第一產品將被反序列化,因爲只有一個類具有名稱「的package_id」,並且第二而第三個JSON項目不會反序列化使用JsonConvert.Deserialize,因爲SecondPackage_id類不存在連續。
獲得(多個)命名的對象,您可以修改您的代碼示例,以顯示你的意思是什麼「包在其中的類類型應更改的屬性」 – Waaghals
@Waaghals此消息意味着返回的JSON中的字段「package_id」不是固定的名稱,即字段類型不是固定字段,但所有變體都包含相同的屬性。該名稱是一個包ID,JSON標籤是一個包的ID,如果我通過列表查詢,該ID帶有另一個「名稱」,但它是同一個類。我需要找到一種能夠使這種動態變化的方法,以便Newtonsoft理解反序列化的內容。 –