我正在尝试将url中的json参数传递到字典中。我已确认我的json在http://www.freeformatter.com/json-validator.html上有效。这是我的json对象:
{
"TagName": "property_details_address_address1",
"ValuationDetails": {
"TagValue": "Test",
"ImageBase64": ""
}
}
班级:
public class ValuationDetails
{
public string TagValue { get; set; }
public string ImageBase64 { get; set; }
}
传递给它的方法:
public void UploadValuationDetails(Dictionary<string, ValuationDetails> JsonResult, int Id)
{
DatabaseHelper DBH = new DatabaseHelper();
foreach (var item in JsonResult)
{ //(ValuationId ,TagName , TagValue , ImageBase64)
DBH.WSValuationDetailUpdate(Id, item.Key, item.Value.TagValue, item.Value.ImageBase64);
}
}
所以我的网址是:
http://localhost:0000/APIService/UploadValuationDetails?JsonResult={TagName:"property_details_address_address1",ValuationDetails:{TagValue:"Test","ImageBase64":""}}&Id=4785
目前我的JSON结果显示计数为0,但应该有一个标识符为keyname的对象,以及tagValue = test和ImageBase64 =“”
的值答案 0 :(得分:0)
看到您的JSON示例,我理解的是您试图在Dictionary<string, ValuationDetails>
中解释它,但由于TagName
的值不是ValuationDetails
,因此无法完成此操作Dictionary
参数。所以,你可以像下面那样对它进行分类并再试一次:
public class RootObject
{
public string TagName { get; set; }
public ValuationDetails ValuationDetails { get; set; }
}
如果你想要,
应该有一个带有Tagname键的对象和一个值,其中tagValue = test和ImageBase64 =“”
那么您的JSON字符串应该类似于:
{
"TagName1": {
"TagValue": "Test1",
"ImageBase64": ""
},
"TagName2": {
"TagValue": "Test2",
"ImageBase64": ""
}
}
如果是这种情况,那么您在循环中提供的代码应该可以正常工作。