需求
- 使用 js 对 php 进行
GET请求,目的是想获取到数据库的几行数据,然后显示在页面里。 - 想的是接收php传来的 json 数据的话,就更好解析数据,并获取里面的字段名和数据。
- 所以在php文件里,将返回的数据解析成json格式,使用
json_encode()。
问题
- 接收后发现,接收到的数据是json格式的字符串,所以还需要将字符串解析成json数据。
- 并且字符串里还是多个json格式的数据,比如
{"name" : " simon "},{"name" : "lucy"}。 - 如果只使用JSON_parse()是没法解析多个
{ }的。
解决方法
- 可以将整个字符串组合成一个数组,再将这个数组放在一个自定义的json数据中。比如:
{"person" : [ {"name" : " simon "},{"name" : "lucy"} ] },这样就变成了一个json数据,就可以解析了。 - 之后再用
.来对所需数据进行获取。
代码如下
var xhr = new XMLHttpRequest();
xhr.open('GET', "https://.php?name="+name+"", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200 || xhr.status == 304) {
if(xhr.responseText == false){
lert("没有更多了")
}else{
var temp="{\"Person\":[" + xhr.responseText +"]}",
json = eval('('+temp+')');
for(var i=0;i<json.Person.length;i++){
var str = json.Person[i].name +"的电话是:"+json.Person[i].phoneNum+"<br/>";
box.innerHTML += str;
}
}