【问题标题】:How to convert the output of an .aspx into a JSON?如何将 .aspx 的输出转换为 JSON?
【发布时间】:2012-02-24 11:13:02
【问题描述】:

我需要将 .aspx 页面的输出转换为 JSON 对象(由于 JSONP Ajax 请求)。

其实这个页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="mypage.aspx.cs" Inherits="folder_mypage" %>

<div class="myClass">Hello</div>

使用 jQuery,在 ajax 调用之后:

$.ajax({
    url: 'http://myownajax.projects.it/folder/mypage.aspx',
    dataType: 'jsonp',
    success: function(result) {
        console.log("it is ok");
    },

    error: function(jqXHR, textStatus, errorThrown) {
        console.log(textStatus + " - " + errorThrown);
    }                
});

我得到parsererror - SyntaxError: class is a reserved identifier 这就是为什么我需要将“页面的输出”转换为 JSON 元素。

我该怎么做?

编辑 简而言之:我想将一个 .aspx 上下文附加到一个元素,客户端!请求是跨域的,这就是我需要 JSONP 的原因,结果需要 JSON!所以,我正在寻找的只是这个:获取 HTML(作为字符串)并放入一个 JSON 对象。赞result.myHtmlString="&lt;div class='myClass'&gt;Hello&lt;/div&gt;";

【问题讨论】:

  • 在阅读了其他答案和您的评论之后,也许您正在寻找如何实现这样的东西? json.fastfrag.org
  • 不是真的!该字符串被“解析”为 JSON 对象!我需要的是获取整个 HTML 并将其(作为字符串)放在 result.myHtmlString="
    Hello
    ";
  • 你现在明白我需要什么了吗?
  • 我的回答向您展示了如何做到这一点。你应该得到一个对象{ Html: "&lt;html&gt;&lt;head&gt;...&lt;/html&gt;" }
  • { html: "
    你好
    " }

标签: c# .net ajax json parsing


【解决方案1】:

你可以做这样的事情(未经测试,我自己从未使用过,但它显示了一般要点和 js-serializer)

class Result{
  public String Html{get;set;}
}

TextReader txtread = new TextReader("page.aspx");
string text = txtread.ReadToEnd();
var res = new Result(){Html=text};
JavaScriptSerializer serializer = new JavaScriptSerializer();
var json = serializer.Serialize(res);

不使用序列化器:

String html = new TextReader("page.aspx").ReadToEnd();
String json = "{ Html: '" + html + "'}";
return json;

json 是一个字符串!

【讨论】:

  • 哦...好吧,就这个!该死的,在调用之后,我在 jQuery 上收到了这个错误...parsererror - Error: jQuery1710912841784877329_1330084304383 was not called
  • 看起来像一个新问题。只需接受这个,然后发布一个新问题,并确保包含产生错误的代码。干杯!
【解决方案2】:

您应该注意,您的结果页面不在JSON,而是在HTML

<div class="myClass">Hello</div>

在 JSON 中会是这样的:

{
    "div": 
    { 
        myclass: "John"
    },
    ...
}

因此,您可以将逻辑移至代码隐藏,或尝试查找一些渲染器。
目前很难说您要做什么 - 通过 JSON 返回 HTML?

更新: 如果你想将 HTML 返回给客户端,只需像这样包装它:

{
    html: "YOUR RESULT HTML HERE"
}

【讨论】:

  • 嗯,是的!我正在寻找的是:将结果页面(HTML)转换为 JSON,所以我可以在客户端管理它!我认为整个 HTML 是一个字符串,并插入到 JSON 对象中?
  • 我想将 .aspx 上下文附加到元素,客户端!请求是跨域的,这就是我需要 JSONP 的原因,结果需要 JSON!所以,我正在寻找的只是这个:获取 HTML(作为字符串)并放入一个 JSON 对象。像 result.myHtmlString="
    Hello
    ";
  • 如何在 C# 上像这样“包装它”?
猜你喜欢
  • 1970-01-01
  • 2017-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-16
相关资源
最近更新 更多