【发布时间】:2014-10-23 03:30:20
【问题描述】:
我有一个 JSON 响应作为以下内容,但我的问题是有些字符与我想要的 JSON 响应无关。因此,我已将该 JSON 响应传递给 JavaScript 变量并查看 JSON 字符串。那是在底部。
-----------JSON响应------------
{
"readyState":4,
"responseText":"<?xml version=\"1.0\"encoding=\"utf-8\"?>\r\n<string>{\"kind\":\"analytics#gaData\",\"id\":\"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:76546294&dimensions=ga:userType&metrics=ga:users&start-date=2014-10-01&end-date=2014-10-23&max-results=10\",\"query\":{\"start-date\":\"2014-10-01\",\"end-date\":\"2014-10-23\",\"ids\":\"ga:76546294\",\"dimensions\":\"ga:userType\",\"metrics\":[\"ga:users\"],\"start-index\":1,\"max-results\":10},\"itemsPerPage\":10,\"totalResults\":2,\"selfLink\":\"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:76546294&dimensions=ga:userType&metrics=ga:users&start-date=2014-10-01&end-date=2014-10-23&max-results=10\",\"profileInfo\":{\"profileId\":\"76546294\",\"accountId\":\"289147\",\"webPropertyId\":\"UA-289147-1\",\"internalWebPropertyId\":\"456104\",\"profileName\":\"US - Institutional Investors - NP Microsite\",\"tableId\":\"ga:76546294\"},\"containsSampledData\":false,\"columnHeaders\":[{\"name\":\"ga:userType\",\"columnType\":\"DIMENSION\",\"dataType\":\"STRING\"},{\"name\":\"ga:users\",\"columnType\":\"METRIC\",\"dataType\":\"INTEGER\"}],\"totalsForAllResults\":{\"ga:users\":\"1110\"},\"rows\":[[\"New Visitor\",\"826\"],[\"Returning Visitor\",\"284\"]]}</string>",
"status":200,
"statusText":"OK"
}
-----------JSON 结束 ------------
我想从字符串的开头删除这些字符:
`{"readyState":4,"responseText":"<?xml version=\"1.0\"encoding=\"utf-8\"?>\r\n<string>`
我想从字符串末尾删除这些字符:
`</string>","status":200,"statusText":"OK"}`
所以我想删除这些字符。我认为要使用一组 JavaScript 字符串函数。但我不知道如何混合使用。
有人可以帮我解决这个问题吗?
感谢和问候, 奇兰塔卡
更新
我使用了以下 AJAX 函数来发送和获取 JSON 响应。
function setJsonSer() {
formData = {
'Email': 'clientlink@site.com',
'Password': 'password1234',
'URL': getVaria()
};
$.ajax({
url: "/APIWebService.asmx/AnalyticsDataShowWithPost",
type: 'POST',
data: formData,
complete: function(data) {
var jsonResult = JSON.stringify(data);
alert(JSON.stringify(data));
Load(data);
}
});
}
更新 02
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);
}
});
}
【问题讨论】:
-
您尝试作为 JSON 响应发送的对象是什么?
-
为什么将 XHR 对象转换为 JSON?只需使用
xhr.responseText获取响应部分。 -
您需要将
xhr.responseText解析为XML,然后从中获取<string>元素,并将其解析为JSON 以获得您想要的。 -
查看更新。但是我还没有将我的 XHR 对象转换为 JSON,但我使用了第 3 方来构建那个 JSON Web 服务。我认为错误是从他们那里开始的。那么我们可以从头到尾做些什么来解决这个问题吗?
-
实际上 XML 包装不是我做的,而是由创建这个 JSON Web 服务的另一方做的。但现在我想删除它。
标签: javascript json string