正在读取JSON,数据未显示
Reading from JSON, data not displayed
当我试图从javascript访问json中的元素时,遇到了这个奇怪的问题。我从url中检索一个json字符串,比如
// Create Request
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(@"www.someurl.com");
// Create Client
WebClient client = new WebClient();
// Assign Credentials
client.Credentials = new NetworkCredential("username", "pass");
// Grab Data
sjson = client.DownloadString(@"www.someurl.com");
System.Web.Script.Serialization.JavaScriptSerializer oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
oSerializer.MaxJsonLength = Int32.MaxValue;
sjson = oSerializer.Serialize(sjson);
但是,当我在html代码中从javascript访问这个sjson变量时,它不会返回任何内容,但如果我对它进行硬编码,它会返回值,请对此提供帮助。我尝试了很多东西,但都没用。我还试图只传递检索的json字符串而不进行序列化,当我这样做时,javascript停止工作。:(以下是javascript代码,
<script type="text/javascript">
var jsons = JSON.parse('<%=sjson%>');
function initialize() {
alert("hahahahaaa");
document.writeln(jsons.Body[0].RowId.SensorIdValue);
//document.writeln(myobject.Body[0].RowId.SensorIdValue);
}
</script>
问题是
document.writeln(myobject.Body[0].RowId.SensorIdValue);
如果我使用myobject变量,但
document.writeln(jsons.Body[0].RowId.SensorIdValue);
当我将其与解析后的值一起使用时,不返回任何内容。:(
以下是我通过c#、运行序列化程序后得到的json输出(response.write)的示例
请帮我做这件事。。我似乎在这里找不到问题。
编辑:
如果有帮助的话,下面的字符串是我在不进行任何序列化的情况下直接从服务器获得的json字符串,
由于所有者的请求,问题的内容很少被删除
您看到的是双重JSON序列化数据。您从远程服务器检索JSON,然后使用JavaScriptSerializer对其进行第二次JSON编码。这是我在ASMX ScriptServices的背景下写的一篇关于这一点的帖子,它更详细地解释了:http://encosia.com/asp-net-web-services-mistake-manual-json-serialization/.你的情况并不完全相同,但最终结果是。
删除JavaScriptSerializer代码并返回检索到的JSON字符串(sjson
),而不是再次序列化它。
您不需要使用Json序列化程序,因为远程服务器已经返回了一个Json编码的字符串,您可以直接在页面中使用该字符串,从而避免双重编码。
因此:
public string GetJson()
{
// Create Client
using (WebClient client = new WebClient())
{
// Assign Credentials
client.Credentials = new NetworkCredential("username", "pass");
// Grab Data
return client.DownloadString(
@"www.someurl.com"
);
}
}
然后:
<script type="text/javascript">
var jsons = <%= GetJson() %>;
function initialize() {
alert("hahahahaaa");
document.writeln(jsons.Body[0].RowId.SensorIdValue);
//document.writeln(myobject.Body[0].RowId.SensorIdValue);
}
</script>
- 如何将json数据显示为html
- 解耦按钮(两个按钮同时切换),并根据数据显示相应的按钮
- 将json提要数据显示为html
- 使用Ajax Get方法将数据显示到特定元素中
- 如何将数据显示为线性highChart
- Json显示来自网站的数据显示仅未定义
- 使 ajax 请求和成功数据显示在 id <选择>选择>部分中
- 在按钮单击时将图像URL数据显示到弹出框中,而无需禁用背景
- 如何在循环中将 json 数据显示为 HTML
- 如何使用javascript在html中将firebase数据显示为列表
- PHP同时循环数组数据显示到javascript中
- 原始图像数据显示
- 如何在 y 轴上将数据显示为 KB、MB、GB、TB
- Ajax 数据显示在包含 10 行的表中
- 如何让 Mathjax.js 与 ANCII.js 将附加的 json 数据显示为正确的公式
- 调用 Worklight 适配器并将列表视图中的 JSON 数据显示为字符串
- Jquery/Javascript Datatables : 如何在行选择时将行数据显示到 html 文本字段中
- 双击 td 时,如何在警告框中将数据库中的数据显示为 html 表
- 日期之间的数据显示所有头
- 如何使用模板中的数据显示谷歌地图