0

惠。我有一个 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 脚本中解析这两个对象?

提前致谢。

4

3 回答 3

1

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

告诉他们(你?)mysql_fetch_assoc()改用。

实际上,请改用PDO

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

于 2012-06-06T21:16:40.550 回答
0

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

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

希望这会有所帮助...

问候;

咪咪

于 2012-06-06T21:19:11.260 回答
0

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

默认为 MYSQL_BOTH,并且该函数返回一个带有数字键和选择参数的关联数组。

对于第二点,您可以使用

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

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

于 2012-06-06T21:16:26.480 回答