簡體   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