一尘不染

从ASP.NET页面返回JSON对象

json

在我的特定情况下,我有两种解决方案。我想找出哪一种更可行。在这种情况下,我还可以通过从服务器端代码返回JSON对象来实现自己的目标。但是,我不知道它是如何完成的,最好的方法是什么。

首先,我不需要完整的aspx页面,因为我只需要从代码返回的响应即可。那么,我是否使用Web服务,处理程序,或者是否有其他特定方法来执行此操作?

这个解决方案可行吗?我是否使用StringBuilder该类构建JSON字符串并将该字符串注入目标aspx页面?有什么预防措施或应注意的事项吗?

感谢您的想法。

问候,

凯末尔

------------更新!------------

假设我的userlist.aspx页中有一个JSON对象,然后将其与jQuery一起使用…

{"menu": {
  "id": "color1",
  "value": "color",
  "popup": {
    "menuitem": [
      {"value": "Red"},
      {"value": "Green"},
      {"value": "Yellow"}
    ]
  }
}} // example taken from the json.org/example page

现在,当我想从aspx页面添加新的菜单项时,该怎么办…我认为这样我的问题就更具体了…

假设我在aspx代码中创建了一个新字符串,例如"{"value": "Blue"}。如何将其注入到目标页面中已经存在的项目列表中?还是这不是解决这种情况的正确方法?如果没有,那又如何实现呢?

另外,如果我想在将新项目添加到此列表时触发jQuery事件,如何实现?

------------ 2015年8月26日更新2 ------------

当我问这个问题时,我解决问题的方式是另一个方面。我现在精通该主题,并且可以很乐意接受投票最多的答案,因为解决此问题的方法显然不应该包括已经存在的JSON,并且@DavGarcia也建议从代码中输出一个新的JSON


阅读 363

收藏
2020-07-27

共1个答案

一尘不染

在您的Page_Load中,您将要清除正常的输出并编写自己的输出,例如:

string json = "{\"name\":\"Joe\"}";
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.Write(json);
Response.End();

要将C#对象转换为JSON,可以使用Json.NET之类的库。

不过,可以考虑使用Web Service(asmx)或WCF,两者都可以输出JSON,而不是让.aspx页面输出JSON。

2020-07-27