佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 2425|回复: 21

Javascript如何读取Json

  [复制链接]
发表于 7-7-2012 06:11 PM | 显示全部楼层 |阅读模式
根据 http://www.json.org/js.html
可以用 myJSONObject.bindings[0].method 读取以下数据

var myJSONObject = {"bindings": [
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};


以下是由PHP和Sqlite产生的数据.类似上面的数据,只是少了bindings.请问如何读取?
var myJSONObject = {[
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 8-7-2012 09:19 AM | 显示全部楼层
有人懂吗?这个问题在别的网站也问过了,没人懂
回复

使用道具 举报

发表于 8-7-2012 05:00 PM | 显示全部楼层
这个不就是普通的array吗?
回复

使用道具 举报

发表于 8-7-2012 08:31 PM | 显示全部楼层
本帖最后由 cupid25 于 8-7-2012 08:36 PM 编辑
这个不就是普通的array吗?
江田岛平八 发表于 8-7-2012 05:00 PM

因为没有 key 所以 json parse 不到
回复

使用道具 举报

发表于 8-7-2012 08:32 PM | 显示全部楼层
本帖最后由 cupid25 于 8-7-2012 08:37 PM 编辑
根据 http://www.json.org/js.html
可以用 myJSONObject.bindings[0].method 读取以下数据

var myJSONO ...
西门庆33 发表于 7-7-2012 06:11 PM



给 complete source 吧。。。我想很简单问题,很多东西要自己研究。。。很普通吧
应该漏了哪里,少了 key 。。。
回复

使用道具 举报

发表于 8-7-2012 09:38 PM | 显示全部楼层
本帖最后由 江田岛平八 于 8-7-2012 09:40 PM 编辑
因为没有 key 所以 json parse 不到
cupid25 发表于 8-7-2012 08:31 PM

这个不能吗?
  1. document.write(myJSONObject [0].method);
复制代码
回复

使用道具 举报

Follow Us
发表于 8-7-2012 09:43 PM | 显示全部楼层
这个不能吗?
江田岛平八 发表于 8-7-2012 09:38 PM

能的话他上面就没说很多人问了,你可以自己试看。。。 browser 该出现 invalid bla bla error
回复

使用道具 举报

发表于 8-7-2012 09:47 PM | 显示全部楼层
能的话他上面就没说很多人问了,你可以自己试看。。。 browser 该出现 invalid bla bla error
cupid25 发表于 8-7-2012 09:43 PM



   应该是不难的问题吧,我以前做过很多javascript都有用json的。但不在这部电脑。最主要还是parsing罢了。https://www.google.com.my/webhp?sourceid=chrome-instant&ie=UTF-8#hl=en&sclient=psy-ab&q=javascript+parsing+json&oq=javascript+parsing+json&gs_l=hp.3..0l4.345478.354944.2.355614.28.15.12.0.0.8.951.5101.0j6j5j0j1j1j2.15.0...0.0.0u9iFgvg69I&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb&fp=673242acfd9407a3&biw=1280&bih=685
回复

使用道具 举报


ADVERTISEMENT

发表于 8-7-2012 09:52 PM | 显示全部楼层
应该是不难的问题吧,我以前做过很多javascript都有用json的。但不在这部电脑。最主要还是parsing罢 ...
江田岛平八 发表于 8-7-2012 09:47 PM


是的,不难的问题。。。。只是不懂他哪里弄错吧。。。。也许 php 或哪里。因为他给的只有 output 是那样。
回复

使用道具 举报

 楼主| 发表于 8-7-2012 11:29 PM | 显示全部楼层
本帖最后由 西门庆33 于 8-7-2012 11:34 PM 编辑

回复 9# cupid25
我的资料是使用下面函数生成的 。我的资料库是Sqlite, table里有三个fields: ID, UserName, Password.如果要用Javascript读取谋一个的记录,需要用什么方式呢?

function loadUserPassword() {
global $database, $table, $fieldName;

$myResult = array ();
$query = 'SELECT * FROM '.$table;
$db = new PDO('sqlite:'.$database);
$result = $db->query($query);

foreach($result as $row) {
$myResult[]=array('Id'=>$row['Id'], 'userName'=>$row['userName'], 'userPassword'=>$row['userPassword']);
}

// close the database connection
$db = NULL;
return $myResult;
}
回复

使用道具 举报

发表于 8-7-2012 11:48 PM | 显示全部楼层
本帖最后由 wooncherk 于 8-7-2012 11:50 PM 编辑

这个json应该不是valid的json.

尝试run一下以下的code就知道了... :P

<html>
<head>
<script type="text/javascript">
var myJSONObject = {[
{"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
{"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
{"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};
</script>
</head>
</html>


binding是key来的... 要有key才成立... :)
回复

使用道具 举报

发表于 9-7-2012 12:00 AM | 显示全部楼层
西门庆33 发表于 7-7-2012 06:11 PM
  1. var myJSONObject = {[
  2. {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
  3. {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
  4. {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
  5. ]};
复制代码


这个是invalid json来的。。因为那个key不见了~

function loadUserPassword() {
global $database, $table, $fieldName;

$myResult = array ();
$query = 'SELECT * FROM '.$table;
$db = new PDO('sqlite:'.$database);
$result = $db->query($query);

foreach($result as $row) {
$myResult[]=array('Id'=>$row['Id'], 'userName'=>$row['userName'], 'userPassword'=>$row['userPassword']);
}

// close the database connection
$db = NULL;
return $myResult;
}
西门庆33 发表于 8-7-2012 11:29 PM


你的PHP是不是忘记从 array convert去json
array 是 array,json 是 json 不一样

array 会有一个key相对的json也是
回复

使用道具 举报

发表于 9-7-2012 02:34 AM | 显示全部楼层
回复  cupid25
我的资料是使用下面函数生成的 。我的资料库是Sqlite, table里有三个fields: ID, UserName ...
西门庆33 发表于 8-7-2012 11:29 PM

嗯,上面的两位兄弟已经帮你解答了。。。假如你是用 php array 那么你自己要加 key 进去,尝试如何做吧。。。很简单摆了。看多多 array 就会
回复

使用道具 举报

 楼主| 发表于 9-7-2012 11:49 AM | 显示全部楼层
这个是invalid json来的。。因为那个key不见了~



你的PHP是不是忘记从 array convert去json
a ...
小陈陈 发表于 9-7-2012 12:00 AM


是的,我在别处才转换。
<?php
$userResult = loadUserPassword();
$jsonString = json_encode($userResult);
?>
回复

使用道具 举报

 楼主| 发表于 9-7-2012 11:54 AM | 显示全部楼层
嗯,上面的两位兄弟已经帮你解答了。。。假如你是用 php array 那么你自己要加 key 进去,尝试如何做吧。 ...
cupid25 发表于 9-7-2012 02:34 AM

我把Key加上去好像不行,应该用错方式吧?
请问如何把Key加上去?
回复

使用道具 举报

发表于 9-7-2012 05:01 PM | 显示全部楼层
$myResult['binding']=array('Id'=>$row['Id'], 'userName'=>$row['userName'], 'userPassword'=>$row['userPassword']);



$myResult=array('Id'=>$row['Id'], 'userName'=>$row['userName'], 'userPassword'=>$row['userPassword']);

上面比喻的话你的 key 就是 id, userName, userPassword,但第一个做法就用 binding key (multi-dimen)


你测试一下可以不可以
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 9-7-2012 09:44 PM | 显示全部楼层
$myResult['binding']=array('Id'=>$row['Id'], 'userName'=>$row['userName'], 'userPassword'=>$row['use ...
cupid25 发表于 9-7-2012 05:01 PM



让我测试後再告诉大家。辛苦各位了。
回复

使用道具 举报

 楼主| 发表于 9-7-2012 10:06 PM | 显示全部楼层
$myResult['binding']=array('Id'=>$row['Id'], 'userName'=>$row['userName'], 'userPassword'=>$row['use ...
cupid25 发表于 9-7-2012 05:01 PM

我试了,还是不行。 $myResult 和 $myResult['binding'] 都不是动态 array,不会在loop中增加,前面的记录会被下一个记录代替,因此每次只是读取到最后的记录。
回复

使用道具 举报

发表于 10-7-2012 01:10 AM | 显示全部楼层
本帖最后由 cupid25 于 10-7-2012 01:25 AM 编辑
我试了,还是不行。 $myResult 和 $myResult['binding'] 都不是动态 array,不会在loop中增加,前面的记录 ...
西门庆33 发表于 9-7-2012 10:06 PM

我只是给你 example 解决上面问题吧,你要动态 array 当然不能那么写,你要动动脑精吧如何做不可能我帮你把全部做完对不对?我只是给你 example 如何装 key 当然日后如何造化就的看你如何运用了吧。就如我说的,你要多学习 array。。。因为你不懂如何真正运用,问题在这摆了

其实我知道怎么解决你的疑问,但我不见得该那么给你答案。。。因为我给的答案很接近了,只是 php 有时候要一点点手脚就能做到了。。。因为有时是做不到但换另一种方式也就能了。别学死要灵活掌握,多拿几个钟玩 array 吧。

而且上面大大也跟你说了装 key 就可以也不一定要死死要用 [] 来 auto key 。。。做不到那么就换一种方式来做
回复

使用道具 举报

 楼主| 发表于 10-7-2012 08:26 PM | 显示全部楼层
我只是给你 example 解决上面问题吧,你要动态 array 当然不能那么写,你要动动脑精吧如何做不可能我帮你 ...
cupid25 发表于 10-7-2012 01:10 AM

明白。我会试试。非常感谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 15-10-2025 02:26 PM , Processed in 0.153834 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表