你能通过Url传递json到Dictionary <string,class =“”>吗?</string,>

时间:2014-03-12 15:57:38

标签: c# json url dictionary

我正在尝试将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 =“”

的值

1 个答案:

答案 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": ""
    }
}

如果是这种情况,那么您在循环中提供的代码应该可以正常工作。