जवाबों:
आसान मटर नींबू निचोड़: http://www.php.net/manual/en/function.json-encode.php
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
andyrusterholz at g-m-a-i-l dot c-o-mपूर्वोक्त पृष्ठ पर एक पोस्ट है जो जटिल नेस्टेड सरणियों को संभाल सकता है (यदि यह आपकी बात है)।
json_encodeइस तरह से PHP के मूल निवासी का उपयोग करें :
<?php
$arr = array(
array(
"region" => "valore",
"price" => "valore2"
),
array(
"region" => "valore",
"price" => "valore2"
),
array(
"region" => "valore",
"price" => "valore2"
)
);
echo json_encode($arr);
?>
अपडेट : टिप्पणी में अपने प्रश्न का उत्तर देने के लिए। आप इसे इस तरह करते हैं:
$named_array = array(
"nome_array" => array(
array(
"foo" => "bar"
),
array(
"foo" => "baz"
)
)
);
echo json_encode($named_array);
सरल: बस एक (नेस्टेड) PHP सरणी बनाएँ और json_encodeउस पर कॉल करें । न्यूमेरिक सरणियाँ JSON सूचियों ( []), साहचर्य सरणियों और PHP ऑब्जेक्ट्स में अनुवाद करती हैं ( {})। उदाहरण:
$a = array(
array('foo' => 'bar'),
array('foo' => 'baz'));
$json = json_encode($a);
आपको देता है:
[{"foo":"bar"},{"foo":"baz"}]
सबसे अच्छा तरीका है कि आपको php में json बनाने के लिए हर बार जाना चाहिए, पहले ASSOCIATIVE सरणी में मान परिवर्तित करें।
इसके बाद बस यूज करके एनकोड करें json_encode($associativeArray)। मुझे लगता है कि यह php में json बनाने का सबसे अच्छा तरीका है क्योंकि जब भी हम php में परिणाम के रूप में sql क्वेरी लाते हैं, तो अधिकांश समय हमें fetch_assocफ़ंक्शन का उपयोग करके मान मिलते हैं , जो एक साहचर्य सरणी भी लौटाता है।
$associativeArray = array();
$associativeArray ['FirstValue'] = 'FirstValue';
... आदि।
उसके बाद।
json_encode($associativeArray);
सरणी के लिए भी आप लघु एनोटेटियन का उपयोग कर सकते हैं:
$arr = [
[
"region" => "valore",
"price" => "valore2"
],
[
"region" => "valore",
"price" => "valore2"
],
[
"region" => "valore",
"price" => "valore2"
]
];
echo json_encode($arr);
नीचे दिए गए @tdammers द्वारा दिए गए समाधान की मदद से मैं ऐसा करने में सक्षम हूं। निम्न पंक्ति को फॉरेस्ट लूप के अंदर रखा जाएगा।
$array[] = array('power' => trim("Some value"), 'time' => "time here" );
और फिर json एनकोड फ़ंक्शन के साथ सरणी को एनकोड करें
json_encode(array('newvalue'=> $array), 200)
इस सिंगल लाइन को टाइप करने से आपको एक json array मिलेगी,
echo json_encode($array);
आम तौर पर आप json_encodeएक आईओएस या एंड्रॉइड ऐप से डेटा पढ़ने के लिए उपयोग करते हैं। इसलिए सुनिश्चित करें कि आप सटीक json सरणी के अलावा और कुछ भी प्रतिध्वनित नहीं करते हैं।
<?php
$username=urldecode($_POST['log_user']);
$user="select * from tbl_registration where member_id= '".$username."' ";
$rsuser = $obj->select($user);
if(count($rsuser)>0)
{
// (Status if 2 then its expire) (1= use) ( 0 = not use)
$cheknew="select name,ldate,offer_photo from tbl_offer where status=1 ";
$rscheknew = $obj->selectjson($cheknew);
if(count($rscheknew)>0)
{
$nik=json_encode($rscheknew);
echo "{\"status\" : \"200\" ,\"responce\" : \"201\", \"message\" : \"Get Record\",\"feed\":".str_replace("<p>","",$nik). "}";
}
else
{
$row2="No Record Found";
$nik1=json_encode($row2);
echo "{\"status\" : \"202\", \"responce\" : \"604\",\"message\" : \"No Record Found \",\"feed\":".str_replace("<p>","",$nik1). "}";
}
}
else
{
$row2="Invlid User";
$nik1=json_encode($row2);
echo "{\"status\" : \"404\", \"responce\" : \"602\",\"message\" : \"Invlid User \",\"feed\":".str_replace("<p>","",$nik1). "}";
}
?>
मैंने अपने कोड का उपयोग करने के लिए एक कच्चा और सरल jsonOBJ वर्ग बनाया। PHP में JavaScript / Node do जैसे json फ़ंक्शन शामिल नहीं हैं। आपको अलग तरह से पुनरावृत्त करना होगा, लेकिन मददगार हो सकता है।
<?php
// define a JSON Object class
class jsonOBJ {
private $_arr;
private $_arrName;
function __construct($arrName){
$this->_arrName = $arrName;
$this->_arr[$this->_arrName] = array();
}
function toArray(){return $this->_arr;}
function toString(){return json_encode($this->_arr);}
function push($newObjectElement){
$this->_arr[$this->_arrName][] = $newObjectElement; // array[$key]=$val;
}
function add($key,$val){
$this->_arr[$this->_arrName][] = array($key=>$val);
}
}
// create an instance of the object
$jsonObj = new jsonOBJ("locations");
// add items using one of two methods
$jsonObj->push(json_decode("{\"location\":\"TestLoc1\"}",true)); // from a JSON String
$jsonObj->push(json_decode("{\"location\":\"TestLoc2\"}",true));
$jsonObj->add("location","TestLoc3"); // from key:val pairs
echo "<pre>" . print_r($jsonObj->toArray(),1) . "</pre>";
echo "<br />" . $jsonObj->toString();
?>
उत्पादन होगा:
Array
(
[locations] => Array
(
[0] => Array
(
[location] => TestLoc1
)
[1] => Array
(
[location] => TestLoc2
)
[2] => Array
(
[location] => TestLoc3
)
)
)
{"locations":[{"location":"TestLoc1"},{"location":"TestLoc2"},{"location":"TestLoc3"}]}
पुनरावृति करने के लिए, एक सामान्य वस्तु में परिवर्तित करें:
$myObj = $jsonObj->toArray();
फिर:
foreach($myObj["locations"] as $locationObj){
echo $locationObj["location"] ."<br />";
}
आउटपुट:
TestLoc1
TestLoc2
TestLoc3
पहुंच प्रत्यक्ष:
$location = $myObj["locations"][0]["location"];
$location = $myObj["locations"][1]["location"];
एक व्यावहारिक उदाहरण:
// return a JSON Object (jsonOBJ) from the rows
function ParseRowsAsJSONObject($arrName, $rowRS){
$jsonArr = new jsonOBJ($arrName); // name of the json array
$rows = mysqli_num_rows($rowRS);
if($rows > 0){
while($rows > 0){
$rd = mysqli_fetch_assoc($rowRS);
$jsonArr->push($rd);
$rows--;
}
mysqli_free_result($rowRS);
}
return $jsonArr->toArray();
}