2011-09-15 11 views
8

मेरे कोड में त्रुटि का कारण क्या है?json_decode() पैरामीटर 1 स्ट्रिंग होने की अपेक्षा करता है, सरणी

$query = $this->db->query("SELECT * FROM tour_foreign ORDER BY id desc"); 
     $data = array(); 
     foreach ($query->result() as $row) 
      $data[] = array('guide' => $row->guide); 

      echo json_decode($data); //Line 167 

त्रुटि:

erro: json_decode() expects parameter 1 to be string, array given: Line Number: 167 

अद्यतन:

json_encode का उपयोग करते हैं, नहीं json_decode मेरी उत्पादन इस है यदि:

[{"guide":["\u0633\u06cc\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"]},{"guide":["\u0633\u06c‌​c\u062f \u0633\u0639\u06cc\u062f \u062f\u0627\u062f\u0627\u0634\u0632\u0627\u062f\u0647"]},{"guide":null}] 

वे फारसी शब्द है।

+0

आप एक सरणी पारित कर रहे हैं जहां एक स्ट्रिंग की उम्मीद है। आप पहले लाइन में सरणी बना रहे हैं - क्या यह आवश्यक है? क्यों न केवल '$ पंक्ति-> गाइड' का उपयोग करें? –

+1

आप क्या करने की कोशिश कर रहे हैं? –

+0

आप यहाँ क्या करने की कोशिश कर रहे हैं? –

उत्तर

32

मुझे लगता है कि आप json_encode, json_decode नहीं चाहते हैं।

+0

'के उपयोग json_encode' मेरी उत्पादन इस है यदि:' [{ "गाइड": [ "\ u0633 \ u06cc \ u062f \ u0633 \ u0639 \ u06cc \ u062f \ u062f \ u0627 \ u062f \ u0627 \ u0634 \ u0632 \ u0627 \ u062f \ u0647 "]}, {" गाइड ": [" \ u0633 \ u06cc \ u062f \ u0633 \ u0639 \ u06cc \ u062f \ u062f \ u0627 \ u062f \ u0627 \ u0634 \ u0632 \ u0627 \ u062f \ u0647 "]}, {"गाइड": शून्य}] ', वे फारसी शब्द –

+0

@ सेलेना: '\ u0633' वर्ण केवल यूनिकोड वर्ण हैं जो एन्कोड किए गए हैं। पहला 'गाइड' 'سید سعید داداشزاده' है। क्या वह सही है? –

+0

हाँ, मैं इसे दिखाने के लिए क्या करूं? –

1

json_decode() का उपयोग किसी जेसन स्ट्रिंग को सरणी/डेटा ऑब्जेक्ट में डीकोड करने के लिए किया जाता है। json_encode() एक सरणी या डेटा से एक जेसन स्ट्रिंग बनाता है। आप मेरे दोस्त को गलत फ़ंक्शन का उपयोग कर रहे हैं, json_encode() का प्रयास करें;

1

यहाँ समान समस्या के लिए समाधान उपयोगकर्ता प्रोफ़ाइल फेसबुक json वस्तु से नाम निकालने जबकि

$uname=json_encode($userprof); 
$uname=json_decode($uname); 
echo "Welcome " . $uname -> name ; 
+1

बहुत बहुत धन्यवाद! मेरी समस्या से मदद की! –

+0

उम ... क्या मुझे कुछ याद आ रही है? यह एक पूर्ण नो-ऑप है ... –

7

अपने डिकोडिंग सही पर सेट नहीं है जो मैं का सामना करना पड़ रहा था। यदि आपके पास स्रोत को सत्य पर सेट करने की पहुंच नहीं है। नीचे दिया गया कोड आपके लिए इसे ठीक करेगा।

$WorkingArray = json_decode(json_encode($data),true); 
2

करीम !!!! धन्यवाद

php -------------------------------------------- ---------------------------------

header('Content-type: application/json'); 
header("access-control-allow-origin: *"); 
... 
.... 
     $answer = json_decode(json_encode($_GET['json']), true); 

     //echo $answer[0]['preguntaid'] ; 

     echo $_GET['jsoncallback'] . '(' . json_encode($answer) . ');'; // for JSONP 

php --------- ----------------------------------------------

jQuery ------------------------------------------------- ------ ...

$.ajax({ 
       url: 'http:XXXXXXXXXvalidar_respuestas.php', 
       dataType: 'jsonp', 
       type: "GET", 
       jsonp: 'jsoncallback', 
       crossDomain: true, 
       data : { json : [{"preguntaid":151,"alternativa":427,"respuesta":"false"},{"preguntaid":151,"alternativa":428,"respuesta":"true"}] } , // { } 
       timeout: 5000, 
       success: function(data){ 

... `

0,123,

मेरे लिए काम

+0

यह मूल पोस्टर के प्रश्न का उत्तर नहीं प्रतीत होता है। यदि आप किसी अन्य उत्तर पर टिप्पणी करना चाहते हैं, तो उस उत्तर पर टिप्पणी करना अधिक उपयुक्त होगा। –

+0

मुझे प्रतिष्ठा नहीं है :( –

संबंधित मुद्दे