【发布时间】:2014-08-05 06:47:40
【问题描述】:
我正在使用 WebApi 发送 json 数据,并且我的 Json 结构包含:
{"totalAmount":0.01,"transactions":[{"Tokens":1,"transactionDI":1,"deviceUserDI":2,"routeDI":1,"DateTimeProceed":"\/Date(1406482920000+0100)\/","Typetran":1,"usedtokens":[{"usedtokenValue":9.32,"usedtokenType":3,"usedtokenId":"d798ee2d920e488487014d2a5ce46e7f"}]}],"numberofTransactions":1,"type":"insertit","validation":"68W956!8$97123@Y$"}
我使用 fiddler 发送,使用 dynamic objectData 访问,然后使用 JsonConvert.DeserializeObject 反序列化。
之后,我将带有 objectData.ToString() 的相同请求插入到数据库中,
相同的结果存储到数据库中(字符串结果)。
但是当我尝试使用时
{
"totalAmount": 0.01,
"transactions": [
{
"Tokens": 1,
"transactionDI": 1,
"deviceUserDI": 2,
"routeDI": 1,
"DateTimeProceed": "\/Date(1406482920000+0100)\/",
"Typetran": 1,
"usedtokens": [
{
"usedtokenValue": 9.32,
"usedtokenType": 3,
"usedtokenId": "d798ee2d920e488487014d2a5ce46e7f"
}
]
}
],
"numberofTransactions": 1,
"type": "insertit",
"validation": "68W956!8$97123@Y$"
}
这以我在上面使用的相同方式存储数据,但它以我发送的相同格式存储到数据库中
现在数据库中两者的区别是:
我用来获取请求的方法
[HttpPost]
public JObject UploadIT(dynamic objectData)
{
//stuffs
}
谁能告诉我为什么以不同的方式插入相同的记录?
【问题讨论】:
-
你在反序列化对象上调用 object.ToString() 吗?
-
我正在反序列化使用:MyModel transactionData = JsonConvert.DeserializeObject
(objectData.ToString()); -
好的,你能展示一下你从请求中创建动态对象的方法吗?
-
我已经编辑了我的问题,请查看
标签: c# json asp.net-mvc-4 dynamic