gpt4 book ai didi

c# - 从 json 中删除 xml 标签

转载 作者:太空宇宙 更新时间:2023-11-03 23:34:33 25 4
gpt4 key购买 nike

web 方法返回此格式的 json 字符串。

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">
[{"PKAdminUserId":1,"Username":"one","Password":"onep"},
{"PKAdminUserId":2,"Username":"two","Password":"twop"}]
</string>

由于这个原因,数据没有绑定(bind)到表中。如果我将数据硬编码为 $scope.Users没有 xml/string标签,它工作正常。如何在没有 xml 的情况下仅从 webmethod 获取 json 数据或 <string>标签。

.aspx:

<table>
<thead>
<tr>
<th>#</th>
<th>Username</th>
<th>Password</th>
</tr>
</thead>
<tbody>
<tr data-ng-repeat="User in Users track by $index">
<td>{{User.PKAdminUserId}}</td>
<td>{{User.Username}}</td>
<td>{{User.Password}}</td>
</tr>
</tbody>
</table>

.asmx:

[WebMethod]        
public string GetUsers()
{
AdminUser obj;
List<AdminUser> lstAdminUsers = new List<AdminUser>();
obj = new AdminUser();
obj.PKAdminUserId = 1;
obj.Username = "one";
obj.Password = "onep";
lstAdminUsers.Add(obj);
var json = new JavaScriptSerializer().Serialize(lstAdminUsers);
return json;
}

userCtrl.js:

$scope.Users = [];
$scope.GetUsers = function () {
var promise = Factory.GetUsers();
promise.then(function (success) {
console.log(success.data);
$scope.Users = success.data;
},
function (error) {
console.log("ERR : " + error);
})
}

解决方案:

从@Sain Pradeep 的链接找到我的解决方案。这是我的 Web 方法现在的样子:

[WebMethod]
public void AddUsers()
{
AdminUser obj;
List<AdminUser> lstAdminUsers = new List<AdminUser>();
obj = new AdminUser();
obj.PKAdminUserId = 1;
obj.Username = "one";
obj.Password = "onep";
lstAdminUsers.Add(obj);
JavaScriptSerializer serializer = new JavaScriptSerializer();
Context.Response.Clear();
Context.Response.ContentType = "application/json";
HttpContext.Current.Response.Write((serializer.Serialize(
serializer.Serialize(lstAdminUsers))));
}

输出:

[{"PKAdminUserId":1,"Username":"one","Password":"onep"}]

最佳答案

您应该直接将数据作为 Json 返回,而不是作为 Xml(以避免包装)。

尝试像这样更新您的网络方法:

[ScriptMethod(ResponseFormat = ResponseFormat.Json)]    
[WebMethod]
public List<AdminUser> GetUsers()
{
AdminUser obj;
List<AdminUser> lstAdminUsers = new List<AdminUser>();
obj = new AdminUser();
obj.PKAdminUserId = 1;
obj.Username = "one";
obj.Password = "onep";
lstAdminUsers.Add(obj);

obj = new AdminUser();
obj.PKAdminUserId = 2;
obj.Username = "two";
obj.Password = "twop";
lstAdminUsers.Add(obj);

return lstAdminUsers;
}

关于c# - 从 json 中删除 xml 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30981346/

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