Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
Javascript 删除JSON响应中的某些字符_Javascript_Json_String - Fatal编程技术网

Javascript 删除JSON响应中的某些字符

Javascript 删除JSON响应中的某些字符,javascript,json,string,Javascript,Json,String,我有一个JSON响应,如下所示,但我的问题是有一些字符与我想要的JSON响应无关。因此,我将JSON响应传递给JavaScript变量,并查看JSON字符串。这是在底部 -----------JSON响应------------ -----------JSON的结尾------------ 我想从字符串开头删除以下字符: `{"readyState":4,"responseText":"<?xml version=\"1.0\"encoding=\"utf-8\"?>\r\n<

我有一个JSON响应,如下所示,但我的问题是有一些字符与我想要的JSON响应无关。因此,我将JSON响应传递给JavaScript变量,并查看JSON字符串。这是在底部

-----------JSON响应------------

-----------JSON的结尾------------

我想从字符串开头删除以下字符:

`{"readyState":4,"responseText":"<?xml version=\"1.0\"encoding=\"utf-8\"?>\r\n<string>`
`</string>","status":200,"statusText":"OK"}`
更新02

我查看了您的代码:

complete: function(data) {
  var jsonResult = JSON.stringify(data);

  alert(jsonResult);

  Load(data);
}
所以你想把你的定制结果字符串化,但是你的结果不是很好地解析的JSON*?如果是,则:

complete: function(data) {
  var responseText = data.responseText;
  var responseJson = JSON.parse(responseText.match(/[{].*.[}]/));
  // you can skip `JSON.parse` if you dont want to leave it as `String` type

  alert(JSON.stringify(responseJson)); //or just `responseJson` if you skip `JSON.parse`

  Load(JSON.stringify(responseJson));
}
这可以暂时解决你的问题。但我认为问题在于您的
后端
,它没有提供解析良好的JSON数据。我的建议是首先修复您的后端系统

*JSON解析不好,因为您的结果在
JSON
对象下包含某种类型的
XML
字符串

  • 您必须解析JSON以获取其中的内容(您必须 完成此操作)
  • 您必须解析XML以获取XML中的文本
  • 下面是XML解析的示例代码:

    您试图作为JSON响应发送的对象是什么?为什么要将XHR对象转换为JSON?只需使用
    xhr.responseText
    获取响应部分。您需要将
    xhr.responseText
    解析为XML,然后从中获取
    元素,并将其解析为JSON以获取所需内容。请参阅更新。但我还没有将我的XHR对象转换为JSON,但我使用了第三方来构建JSON web服务。我认为这是他们的错误。那么,从我们的角度来看,我们能做些什么来解决这个问题吗?实际上,XML包装不是由我完成的,而是由创建这个JSON web服务的另一方完成的。但现在我想删除它,所以我只想从JSON响应中删除XML。为此,我尝试使用一些JavaScript字符串函数。但我不明白怎么做。我已经将JSON传递给名为
    jsonResult
    的JavaScript字符串变量。是否已经尝试过我的示例?它可以用正则表达式实现您所期望的功能。但这不是一个好的设计,因为它在
    XML
    下有
    JSON
    ,所以您的数据很混乱。您还可以使用
    XML
    解析器而不是regex来解析
    XML
    。这取决于你。安迪的回答解决了问题,非常感谢安迪。我也感谢其他朋友在这件事上的帮助。
    function setJsonSer() {
                    formData = {
                    'Email': 'clientlink@russell.com',
                    'Password': 'russell1234',
                    'URL': getVaria()
                };
                    $.ajax({
                    url: "/APIWebService.asmx/AnalyticsDataShowWithPost",
                    type: 'POST',
                    data: formData,
                dataType: 'json',
                    complete: function(data) {
                var jsonResult = JSON.stringify(data);
    
                alert(jsonResult);
    
                Load(data);
    
                    }
                });                 
    
        }
    
    complete: function(data) {
      var jsonResult = JSON.stringify(data);
    
      alert(jsonResult);
    
      Load(data);
    }
    
    complete: function(data) {
      var responseText = data.responseText;
      var responseJson = JSON.parse(responseText.match(/[{].*.[}]/));
      // you can skip `JSON.parse` if you dont want to leave it as `String` type
    
      alert(JSON.stringify(responseJson)); //or just `responseJson` if you skip `JSON.parse`
    
      Load(JSON.stringify(responseJson));
    }