मैं कुछ जेसन ऑब्जेक्ट्स को गठबंधन करने के लिए json_decode का उपयोग करने की कोशिश कर रहा हूं और फिर इसे फिर से एन्कोड करता हूं। मेरी json लगता है:PHP json_decode प्रश्न
{
"core": {
"segment": [
{
"id": 7,
"name": "test1"
},
{
"id": 4,
"name": "test2"
}
]
}
}
मैं इन json वस्तुओं के कुछ ही है और प्रत्येक कुछ इस तरह पाने के लिए केवल "segement" सरणियों गठबंधन करने के लिए करना चाहते हैं: में
{
"segment": [
{
"id": 7,
"name": "test1"
},
{
"id": 4,
"name": "test2"
}
],
"segment": [
{
"id": 5,
"name": "test3"
},
{
"id": 8,
"name": "test4"
}
]
}
अभी मेरी PHP कोड, मैं जेसन को डीकोड कर रहा हूं, प्रत्येक "सेगमेंट" सरणी को स्ट्रिंग में संग्रहीत कर रहा हूं, और उसके बाद जेसन एन्कोड कर रहा हूं।
public function handleJSON($json){
$decodeData = json_decode($json);
$segment =$decodeData->core;
return $segment;
}
public function formatJSON(){
$segments = "";
for ($i = 0; $i < count($json);$i++)
{
$segments .= handleJSON($json[$i]);
}
echo json_encode($segments);
}
जब मैं ऐसा करते हैं, मैं एक त्रुटि प्राप्त:
वर्ग stdClass की वस्तु स्ट्रिंग के लिए कनवर्ट नहीं किया जा सकता है तो फिर मैं उन्हें एक सरणी में भंडारण के उपयोग करने की कोशिश:
public function formatJSON(){
$segments = array();
for ($i = 0; $i < count($json);$i++)
{
$segments[$i] = handleJSON($json[$i]);
}
echo json_encode($segments);
}
इस बार, मुझे कोई त्रुटि नहीं मिली है, लेकिन यह मेरी संपूर्ण संयुक्त जेसन ऑब्जेक्ट को सरणी ब्रैकेट में संग्रहीत करता है। मैं सरणी में encapsulated किए बिना, JSON ऑब्जेक्ट को वापस कैसे कर सकता हूं?
धन्यवाद! यह बहुत हास्यास्पद था! – dtrainer45
खुशी है कि यह सहायक था! – artlung