數據映射我得到的Web API這種類型的JSON數據:動態JSON場模式中使用C#
Data: {
FromDate: "2016-03-01",
Comment: "Bla bla",
...
},
FieldInfo: {
Items: [
{
Id: "FromDate",
Required: true,
DataType: "date"
},
{
Id: "Comment",
Required: true,
DataType: "string"
},
...
]
}
我需要將其序列化到C#對象,並把它轉換爲不同的表達中這應該是這個樣子:
{
FieldInfo: {
Items: [
{
Id: "FromDate",
Required: true,
DataType: "date",
Value: "2016-03-01"
},
{
Id: "Comment",
Required: true,
DataType: "string"
Value: "Bla bla"
},
...
]
}
基本上將字段值映射到它的模式,所以它不會被分開。 當然,最簡單的方法就是爲每個領域編寫大量的if,這不會是非常優雅的解決方案,如果我們考慮到字段模式和字段是動態的,所以他們可以改變,甚至是不可行的。我可以依賴的屬性是FieldInfo Item schema中的Id,它應該是Data對象中的屬性名稱。其中一個解決方案可能是使用反射來將Id值映射到C#對象表示中的屬性名稱。我的問題也許有另一種解決方案(或多個)解決這個問題或一些工具可以幫助我實現這個目標?
1)輸入和輸出是否應該是JSON?因爲根據https://jsonformatter.curiousconcept.com/它們是無效的JSON。 2)到目前爲止您嘗試了什麼?如果JSON,你用什麼來解析/反序列化傳入的JSON,然後在轉換後進行序列化? – dbc
是的基本上我有Web API調用另一個Web API,我需要解析它轉換並輸出轉換後的數據版本。我提供的JSON只是爲了更好地理解我想實現的目標。這是無效的,因爲我添加了「...」,以表示您可以擁有不同的字段類型,如果它增加了額外的混淆,抱歉。 –
1)它不只是缺少的引號,最初的JSON缺少外括號。 2)你使用的是什麼框架和序列化程序?如果您正在使用[ASP.NET Web API](http://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization),您是否已經使用Json.NET? – dbc