我需要将一个动态
JSON对象传递给我的Web API控制器,以便我可以根据它的类型进行处理.我尝试使用JSON.NET示例
that can be seen here,但是当我使用Fiddler时,我可以看到JObect中传递的内容总是为空.
这是从粘贴到Fiddler的例子中发出的:
POST http://localhost:9185/api/Auto/PostSavePage/ HTTP/1.1 User-Agent: Fiddler Content-type: application/json Host: localhost Content-Length: 88 {AlbumName: "Dirty Deeds",Songs:[ { SongName: "Problem Child"},{ SongName: "Squealer"}]}
这里是我非常简单的Web API控制器方法:
[HttpPost] public JObject PostSavePage(JObject jObject) { dynamic testObject = jObject; // other stuff here }
我是新来的,我在这方面有几个问题:
在这个具体例子中我做错了吗?
可以说,更重要的是,是否有更好的方式传递一个动态的JSON对象(来自JavaScript AJAX文章)?
解决方法
根据Perception的评论,您的JSON看起来不合适.运行它通过
JSONLint,你得到:
Parse error on line 1: { AlbumName: "Dirty De -----^ Expecting 'STRING','}'
更改它有“围绕字段名称:
{ "AlbumName": "Dirty Deeds","Songs": [ { "SongName": "Problem Child" },{ "SongName": "Squealer" } ] }
还有,您尝试将JObject替换为JToken或Dynamic对象(例如here)?
[HttpPost] public JObject PostSavePage(JToken testObject) { // other stuff here }
要么
[HttpPost] public JObject PostSavePage(dynamic testObject) { // other stuff here }