繁体   English   中英

用jQuery解析PHP脚本返回的JSON字符串

[英]Parsing with jquery a JSON string returned by a php script

我有一个由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脚本中的两个对象?

提前致谢。

我可以肯定地预测,一切都出现两次的原因是因为创建JSON的人是通过使用不带$result_type参数的mysql_fetch_array()的直接输出来实现的。 如果使用mysqli_fetch_array() / mysqli_result::fetch_array()则也是如此。

告诉他们(您?)改用mysql_fetch_assoc()

实际上,请改用PDO

如果这样做,则不必担心处理“两个”对象,因为您只有一个。

对于第一点,可能是因为您使用了不带第二个参数(MYSQL_ASSOC,MYSQL_BOTH,MYSQL_NUM)的mysql_fetch_array( http://ca.php.net/manual/zh/function.mysql-fetch-array.php

默认值为MYSQL_BOTH,该函数返回带有数字键AND和select参数的关联数组。

第二点,您可以使用

$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: callback
});

http://api.jquery.com/jQuery.getJSON/

第一个问题:有人知道为什么每行记录两次(第一行带有索引,第二行带有列名)吗?

也许是错误的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];

希望这会有所帮助...

问候;

米米兹

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM