返回带有对象模型的 JSON 或带有解析视图的 JSON

Posted

技术标签:

【中文标题】返回带有对象模型的 JSON 或带有解析视图的 JSON【英文标题】:Return JSON with object model or JSON with parsed view 【发布时间】:2014-04-01 21:21:48 【问题描述】:

我正在创建包含大量 AJAX 逻辑的网站。我开始想知道我是否应该返回带有对象模型的 JSON(因为我必须发出一些请求,然后替换/插入一些 html 节点作为响应),例如:

 'Author' : 'Name@Surname', 'Email': 'some@email', 'listOfSomething' = [...], ... //very advanced JSON

然后使用一些js模板引擎解析我的对象并插入到DOM中的正确位置

返回带有解析剃须刀模板的 JSON,例如:

listOfSomething: [id:0, parsedView:ASP.NET.ParseViewWithModel(MyModel[0]),id:1, parsedView:ASP.NET.ParseViewWithModel(MyModel[1]), ... ]

第二选择的优点是它需要的逻辑要少得多。应该使用哪种方法以及何时使用?第二种方法可能是好的解决方案吗?

【问题讨论】:

【参考方案1】:

如果返回的内容只在一个地方使用,那么我会说选项二是一种很好的方法,因为您可以专门针对将要使用它的地方定制 HTML,而您所要做的就是简单地注入它进入 DOM。

否则,如果在多个地方使用 AJAX 返回的内容,那么我会坚持返回 JSON 并让每个客户端对原始数据执行所需的操作。

另外,如果第三方开发者正在使用它,那么 JSON 绝对是要走的路。

【讨论】:

以上是关于返回带有对象模型的 JSON 或带有解析视图的 JSON的主要内容,如果未能解决你的问题,请参考以下文章

使用 Retrofit 解析带有对象数组的 JSON 数组

使用 HttpContent.ReadAsAsync<T> 解析带有一个对象或数组的响应

无法使用带有 Django 的 MongoEngine Pymongo 返回 JSON 对象?

Java框架之SpringMVC 04-视图解析-Spring表单-JSON-上传下载

如何将带有嵌套数组的 JSON 对象映射到打字稿模型中?

Laravel Eloquent,返回带有“belongsTo”对象的 JSON?