使用 jquery 解析 php 脚本返回的 JSON 字符串
Posted
技术标签:
【中文标题】使用 jquery 解析 php 脚本返回的 JSON 字符串【英文标题】:Parsing with jquery a JSON string returned by a php script 【发布时间】:2012-06-06 21:08:29 【问题描述】:嘿嘿。 我有一个 php 脚本返回的这个 json 字符串(2 个不同的表上的 2 个不同的 mysql 查询): (抱歉,这是一个法国应用程序)
[
"statut":"2",
"0":"2",
"lib_statut":"En cours de traitement",
"1":"En cours de traitement",
"appelant":"GUEDIDER Jacqueline",
"2":"GUEDIDER Jacqueline",
"nom":"Virginie SORREL",
"3":"Virginie SORREL",
"date_creation":"05\/04\/2012 \u00e0 14:14:55",
"4":"05\/04\/2012 \u00e0 14:14:55",
"titre":"FACEO - Plus de message d'attente",
"5":"FACEO - Plus de message d'attente"
,
"nom":"Jonathan MORET",
"0":"Jonathan MORET",
"date_inter":"06\/04\/2012 \u00e0 11:18:07",
"1":"06\/04\/2012 \u00e0 11:18:07"
,
"nom":"Jonathan MORET",
"0":"Jonathan MORET",
"date_inter":"20\/04\/2012 \u00e0 08:22:53",
"1":"20\/04\/2012 \u00e0 08:22:53"
]
第一个问题:有谁知道为什么每行记录两次(第一次是索引,第二次是列名)?
第二:如何在我的 jquery 脚本中解析这两个对象?
提前致谢。
【问题讨论】:
我们能看到构建它的查询吗?这可能与为什么一切都是两次有关。 【参考方案1】:我自信地预测,所有内容都出现两次的原因是,创建 JSON 的人是通过使用 mysql_fetch_array()
的直接输出而不使用 $result_type
参数来实现的。如果使用mysqli_fetch_array()
/mysqli_result::fetch_array()
,这也是正确的。
告诉他们(你?)改用mysql_fetch_assoc()
。
事实上,改用PDO。
如果你这样做,你不必担心处理“两个”对象,因为你只会有一个。
【讨论】:
【参考方案2】:对于第一点,可能是因为你使用 mysql_fetch_array (http://ca.php.net/manual/en/function.mysql-fetch-array.php) 没有第二个参数 (MYSQL_ASSOC, MYSQL_BOTH, MYSQL_NUM)
默认为 MYSQL_BOTH,该函数返回一个关联数组,带有数字键 AND 与 select 参数。
而对于第二点,你可以使用
$.ajax(
url: url,
dataType: 'json',
data: data,
success: callback
);
(http://api.jquery.com/jQuery.getJSON/)
【讨论】:
【参考方案3】:第一个问题:有谁知道为什么每行记录两次(第一次是索引,第二次是列名)?
可能是一个错误的 SQL 查询 ... ;) 严重的是,没有表结构和查询,就不可能说出原因 ..;
第二:如何在我的jquery脚本中解析这两个对象?
我假设您已将 JSON 分配给 Javacript var 数据:这是访问数据的方法:
var datas = "yOURJSONSTRING"; // Replace here your json ...
// then
var firstEl = datas[0];
// Then you can use :
console.log("Statut is : " +firstEl.statut); // consle is for debugging purpose on FF
// then for 2nd and 3rd elements:
var sndEl = datas[1];
var trdtEl = datas[2];
希望这会有所帮助...
问候;
mimiz
【讨论】:
以上是关于使用 jquery 解析 php 脚本返回的 JSON 字符串的主要内容,如果未能解决你的问题,请参考以下文章