c# - 不用 jQuery 解析 JSON

标签 c# javascript json

我想将从 ajax 调用获得的结果转换为 JavaScript 数组。如何在不使用 jQuery 的情况下做到这一点?

或者也可以只循环 json 数组而不转换为 JavaScript 数组。

现在我只需要提醒我从 ASMX 服务获得的结果。使用 jQuery 不是任何选择。

请求数据:

string xmlns="http://tempuri.org/"
[{"Action":"Test1","Target":"#cTarget","Payload":"Hello"},{"Action":"Test2","Target":"#cTarget","Payload":"World"}]
string

      [
           {
                 "Action":"Test1",
                 "Target":"#cTarget",
                 "Payload":"Hello"
           },         
           {
                 "Action":"Test2",
                 "Target":"#cTarget",
                 "Payload":"World"
           }
      ]

JavaScript 代码

  var httpRequest;

    function makeRequest(url, input) {
        if (window.XMLHttpRequest) { // Mozilla, Safari, ...
            httpRequest = new XMLHttpRequest();
        } else if (window.ActiveXObject) { // IE
            try {
                httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
            } 
            catch (e) {
                try {
                    httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                } 
                catch (e) {}
            }
        }

        if (!httpRequest) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        httpRequest.onreadystatechange = function(){
            if (httpRequest.readyState === 4) {
                if (httpRequest.status === 200) {
                    var results = httpRequest.responseText;
                        var asJavaScriptArray = JSON.parse(results);

                    }
                }
            //}
        };

        httpRequest.open('POST', url);
        httpRequest.setRequestHeader('Content-Type', 'application/json');
        httpRequest.send(input);
    }

    var endpointAddress = "Core/RecipeDemo.asmx";
    var url = endpointAddress + "/Base";
    makeRequest(url, "{}");`

C#代码

[System.Web.Script.Services.ScriptService]
public class RecipeDemo : System.Web.Services.WebService
{

    [WebMethod]
    public string Base()
    {

        List<Recipe> listOfRecipe = new List<Recipe>();
        JavaScriptSerializer  jss = new JavaScriptSerializer();

        listOfRecipe.Add(new Recipe {Action = "Test1", Payload = "Hello", Target = "#cTarget"});
        listOfRecipe.Add(new Recipe {Action = "Test2", Payload = "World", Target = "#cTarget"});

        return jss.Serialize(listOfRecipe);
                }
}

最佳答案

你应该已经有了一些东西可以将 JSON 字符串作为对象

JSON.parse(myJsonString)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse

从一个对象返回到字符串到JSON.stringify(myObject)

关于c# - 不用 jQuery 解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18624304/

相关文章:

c# - WatIn SelectList().SelectByValue() 返回错误运行脚本失败

javascript - 在 Android 应用程序 (Titanium) 中更改 json 对象的属性

javascript - 如何在 Node.js 中编写中间件类

javascript - 如何确保幻灯片表单中的点位于表单之后而不是位于标签和文本框上?

javascript - 在不使用循环或 jQuery 的情况下获取数组或 JSON 中选择的选项值列表

JSON Schema 仅针对数组的第一个元素报告错误

c# - 在单击Gridview行时,更新另一个控件

c# - 无论如何,有没有办法检测方法将调用什么?

c# - 将最后一项推送到 Observable(序列)

javascript - 跨浏览器库,降级触摸事件,没有额外的重量