Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不使用jQuery解析JSON_C#_Javascript_Json - Fatal编程技术网

C# 不使用jQuery解析JSON

C# 不使用jQuery解析JSON,c#,javascript,json,C#,Javascript,Json,我想将ajax调用的结果转换为JavaScript数组。如何在不使用jQuery的情况下做到这一点 或者,只要能够循环json数组而无需转换为JavaScript数组也可以 现在我只需要提醒结果我从ASMX服务中得到了什么。使用jQuery不是任何选项 来自请求的数据: string xmlns="http://tempuri.org/" [{"Action":"Test1","Target":"#cTarget","Payload":"Hello"},{"Action":"Test2","Ta

我想将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]
公共类RecipeDemo:System.Web.Services.WebService
{
[网络方法]
公共字符串基()
{
List LISTOFRIPE=新列表();
JavaScriptSerializer jss=新的JavaScriptSerializer();
添加(新配方{Action=“Test1”,Payload=“Hello”,Target=“#cTarget”});
添加(新配方{Action=“Test2”,Payload=“World”,Target=“#cTarget”});
返回jss.Serialize(listOfRecipe);
}
}

您应该已经有了将JSON字符串带到对象的东西

JSON.parse(myJsonString)


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

您确实意识到JSON是javascript的一个有效子集,不是吗

这意味着将JSON字符串反序列化为Javascript对象非常简单:

var json = MakeAjaxRequestHere() ;
var deseralizedJsonObject = eval( '(' + json + ')' ) ;

不过,应该注意,除非您信任JSON的源代码,否则eval会有一些风险,因为它会评估任何javascript程序。请参阅以了解更多信息。

然后只使用本机JSON.parse(TheDataFromRequest)函数注意,本机JSON函数仅适用于IE8+和真实浏览器-如果您支持IE7,则需要一个类似.asJavaScriptArray对象{d=“{”Action:“Test1”,“Tar…et”,“Payload:“World”}d=“[{”Action:“Test1”,“Target:”#cTarget,“Payload”:“Hello”},{“Action”:“Test2”,“Target”:“#cTarget”,“Payload”:“World”}]“我似乎只对它进行了部分解析,对ajax响应使用eval听起来不太安全。如果dns或主机文件中毒,则可能发生错误。不!这是一个陷阱
var json = MakeAjaxRequestHere() ;
var deseralizedJsonObject = eval( '(' + json + ')' ) ;