gpt4 book ai didi

javascript - 将来自 Web 服务的字符串转换为 JSON

转载 作者:行者123 更新时间:2023-12-03 12:00:43 25 4
gpt4 key购买 nike

我有到远程数据库的连接,并且我从数据库中获取了一些统计数据。所以我决定创建一个Web服务并通过它获取所需的数据。 DB服务器是Windows上的SQL Server,我需要在我的PHP网页中显示数据。

首先,我编写了返回字符串的 Web 服务

"[
{
"name" : "John",
"Age":"54"
},
{
"name":"Jack",
"Age":"33"
}
]"

我使用 PHP 的 file_get_contents() 方法获取了该字符串。

$json = file_get_contents('http://myurl.org/services.asmx/namelistJson');

但是一开始就返回了一些不需要的标签

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://myurl.org/services.asmx?op=namelistJson">

在最后

</string>

我用它来清洁它们

$json = strip_tags(file_get_contents('http://myurl.org/services.asmx/namelistJson'));

现在我有一个 json 字符串。

我想使用这个字符串作为 JavaScript 的 JSON 来创建一个表。

<?php

$json = strip_tags(file_get_contents('http://myurl.org/services.asmx/namelistJson'));

?>
<script>

var response = $.parse(<?php echo $json; ?>);

$.each(response, function(i, item) {
$('<tr>')
.html("<td>" + response[i].name + "</td>"
+ "<td>" + response[i].Age + "</td>"
)
.appendTo('#nameList');
});

</script>

?>
<table id="nameList" class="table">
</table>

我收到有关缺少 ] 符号的错误。 FireBug 是这样说的

SyntaxError: missing ] after element list

如何正确地将字符串转换为 json 以便在 JavaScript 上使用它?

编辑:

如果我修改该行

var response = $.parse(<?php echo $json; ?>);

var response = <?php echo $json; ?>;

我仍然收到 ] 错误。

HTML 输出如下:

<script>

...

var response = [{"name" : "John", "Age" : "14"}, {"name" : "40"}, ... ];

...

</script>

最佳答案

无需创建字符串然后再次将其转换为 json 对象,您可以直接从 webservice 发送 json 对象并直接在脚本(jquery)中使用它,如下所示:

下面是我的网络服务中的代码

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = true)]
public static object GetGridData()
{
DataTable dt = GetRecords(); // Fetch the data from sql in form of a datatable
var returnData = from row in dt.AsEnumerable()
select new
{
Id = row["Id"] // Here the Id in row["Id"] specifies the column in database
name = row["name"],
age = row["age"]
};
return returnData;
}

要将其作为 jquery 中的对象访问,请使用以下代码:

 $.ajax({
url: 'url of webservice along with method',
dataType: 'json',
contentType: 'application/json; charset=utf-8;',
tyep: 'GET',
success: function (datas) {
var data = datas.d;
$.each(data, function (index, value) {
$('<tr>').html("<td>" + value.name + "</td>"+ "<td>" + value.Age + "</td>"
).appendTo('#nameList');
});
},
error: function (error) {
alert('error occured');
}
});

但是如果你真的想使用字符串发送它并将其解析为 json 那么你可以使用

var jsonObject = JSON.parse(jsonstring);

否则您可以通过将 json 字符串粘贴到 jsonlint.com 来验证您的 json 字符串是否有效

希望这有帮助:)

关于javascript - 将来自 Web 服务的字符串转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25427499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com