2010-03-11 23 views
9

मेरे पास मेरे डीबी में एक जेसन स्ट्रिंग सहेजी गई है। जब मैं इसे डीबी से पुनर्प्राप्त करने के लिए जावास्क्रिप्ट फ़ंक्शन (AJAX कॉल) को उस पंक्ति की आईडी के साथ पास करने के लिए पुनर्प्राप्त करता हूं, तो मैं json_encoding दोनों (क्वेरी परिणाम सरणी) हूं और इसे जेएस में भेज रहा हूं। लेकिन json_encode मेरे पहले से ही जेसन स्ट्रिंग में अवांछित स्लैश जोड़ रहा है। इसे कैसे बचें। याद रखें मुझे आईडी को सरणी में दूसरे तत्व के रूप में भी पास करना होगा।json_encode अवांछित स्लैश जोड़ना

DB में मेरी json स्ट्रिंग की तरह है:

{"field":"City","term":"Hawaiian Gardens, CA"} 

और आईडी कहना 5.

तो PHP में क्वेरी परिणाम सरणी है:

$savedVal['id'] = 5 
$savedVal['object_str'] = {"field":"City","term":"Hawaiian Gardens, CA"} 
तो json_encode के बाद

($ savedVal) आदर्श रूप से यह होना चाहिए:

{"id":"5","object_str":{"field":"City","term":"Hawaiian Gardens, CA"}} 
,210

लेकिन सरणी json_encoding मुझे देता है:

{"id":"5","object_str":"{\"field\":\"City\",\"term\":\"Hawaiian Gardens, CA\"}} 

अतिरिक्त स्लैश और object_str मूल्य के आसपास भी उद्धरण। कृपया मेरी मदद करें।

धन्यवाद।

उत्तर

18

आप JSON पर JSON_encode चला रहे हैं - यही कारण है कि डबल एस्केपिंग होती है। इस प्रयास करें:

$savedVal['id'] = 5 ; 
$savedVal['object_str'] = json_decode('{"field":"City","term":"Hawaiian Gardens, CA"}'); 

echo json_encode($savedVal); 

आउटपुट

{"id":5,"object_str":{"field":"City","term":"Hawaiian Gardens, CA"}} 
+0

धन्यवाद। यह काम करता हैं!!!! – Prashant

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