asp.net-mvc – 将动态JSON对象传递给Web API – Newtonsoft示例

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 将动态JSON对象传递给Web API – Newtonsoft示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要将一个动态 JSON对象传递给我的Web API控制器,以便我可以根据它的类型进行处理.我尝试使用JSON.NET示例 that can be seen here,但是当我使用Fiddler时,我可以看到JObect中传递的内容总是为空.

这是从粘贴到Fiddler的例子中发出的:

  1. POST http://localhost:9185/api/Auto/PostSavePage/ HTTP/1.1
  2. User-Agent: Fiddler
  3. Content-type: application/json
  4. Host: localhost
  5. Content-Length: 88
  6.  
  7. {AlbumName: "Dirty Deeds",Songs:[ { SongName: "Problem Child"},{ SongName:
  8. "Squealer"}]}

这里是我非常简单的Web API控制器方法

  1. [HttpPost]
  2. public JObject PostSavePage(JObject jObject)
  3. {
  4. dynamic testObject = jObject;
  5. // other stuff here
  6. }

我是新来的,我在这方面有几个问题:

在这个具体例子中我做错了吗?

可以说,更重要的是,是否有更好的方式传递一个动态的JSON对象(来自JavaScript AJAX文章)?

解决方法

根据Perception的评论,您的JSON看起来不合适.运行它通过 JSONLint,你得到:
  1. Parse error on line 1:
  2. { AlbumName: "Dirty De
  3. -----^
  4. Expecting 'STRING','}'

更改它有“围绕字段名称

  1. {
  2. "AlbumName": "Dirty Deeds","Songs": [
  3. {
  4. "SongName": "Problem Child"
  5. },{
  6. "SongName": "Squealer"
  7. }
  8. ]
  9. }

还有,您尝试将JObject替换为JToken或Dynamic对象(例如here)?

  1. [HttpPost]
  2. public JObject PostSavePage(JToken testObject)
  3. {
  4. // other stuff here
  5. }

要么

  1. [HttpPost]
  2. public JObject PostSavePage(dynamic testObject)
  3. {
  4. // other stuff here
  5. }

猜你在找的asp.Net相关文章