簡體   English   中英

從json中刪除xml標記

[英]Remove xml tags from json

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>

由於這個原因,數據沒有綁定到表。 如果我將數據硬編碼到沒有xml/string標簽的$scope.Users ,它可以正常工作。 如何從webmethod獲取json數據,不使用xml<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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM