Javascript 删除JSON响应中的某些字符
我有一个JSON响应,如下所示,但我的问题是有一些字符与我想要的JSON响应无关。因此,我将JSON响应传递给JavaScript变量,并查看JSON字符串。这是在底部 -----------JSON响应------------ -----------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<
`{"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));
}