ajax存json对象,关于ajax读取数据表中存放复合json的问题

自己模拟了一点json数据存放在了数据库一个表中大家可以自己模拟{"1":{"id":"1","name":"asd","type":"1","value":"1L,4L"}}

{"2":{"id":"2","name":"kjf","type":"1","value":"1L,4L"}}

{"3":{"id":"3","name":"sss","type":"1","value":"1L,4L"}}

下面我用的pdo执行的php文件<?php

$db = 'mysql';

$host ='localhost';

$port  = '3306';

$dbname = 't_shop';

$user = 'root';

$pwd  = '';

$dsn = "$db:host=$host;port=$port;dbname=$dbname";

//设定字符集

$options = array(PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES \'UTF8\'');

$pdo = new PDO($dsn,$user,$pwd,$options);

$sql="select id,json from ecs_json";

$res=$pdo->query($sql);

$row = $res->fetchAll();

// $row是一个含有json字段键值得二维数组

//打印结果   Array

(

[0] => Array

(

[id] => 1

[0] => 1

[json] => {"1":{"id":"1","name":"asd","type":"1","value":"1L,4L"}}

[1] => {"1":{"id":"1","name":"asd","type":"1","value":"1L,4L"}}

)

[1] => Array

(

[id] => 2

[0] => 2

[json] => {"2":{"id":"2","name":"kjf","type":"1","value":"1L,4L"}}

[1] => {"2":{"id":"2","name":"kjf","type":"1","value":"1L,4L"}}

)

[2] => Array

(

[id] => 3

[0] => 3

[json] => {"3":{"id":"3","name":"sss","type":"1","value":"1L,4L"}}

[1] => {"3":{"id":"3","name":"sss","type":"1","value":"1L,4L"}}

)

)

//定义一个空数组 把二维组里json解析后放进新数组中

$json = array();

foreach ($row as $k=>$v){

//json新数组中放入我需要的id 和 json 的二维数组键

$json[$k]['id'] =$v['id'];

//把键值为json的json串转换成数组 放到新数组中

$json[$k]['json'] =json_decode($v['json'],true);

//转换成数组的json串

//Array

(

[3] => Array

(

[id] => 3

[name] => sss

[type] => 1

[value] => 1L,4L

)

)

}

echo json_encode($json);

exit;

前端ajax接收输出

//解析json

function Object(value){

return eval("("+value+")");

}

function get_wd(){

$.get('./json.php',function (data){

var data = Object(data)

for(i in data){

var obj = data[i]['json'];

var keys = [];

var values = [];

for(var key in obj){

//  console.log(key);

// keys.push(key); //定义一个数组用来接受key

// values.push(obj[key]);//取得value

//追加内容定义追加对象的id

$('#div1').append('

'+obj[key]['name']+'

');

}

}

})

}

前端接收json

姓名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值