मैं संस्करण 2.8 के साथ Symfony 2 परियोजना पर काम कर रहा हूँ और मैं निर्माण में उपयोग कर रहा हूँ घटक Serializer ->http://symfony.com/doc/current/components/serializer.htmldenormalize सिम्फोनी 2 serializer के साथ वस्तुओं में आंतरिक संरचना
मैं एक JSON संरचना एक वेब द्वारा प्रदान की है सर्विस। deserialization के बाद, मैं वस्तुओं में मेरी सामग्री को denormalize करना चाहता हूँ। यहां मेरी संरचना है (मॉडल/कार अनुप्रयोग संदर्भ में बनाना)।
[{
"0": {
"id": 0,
"code": 1,
"model": "modelA",
"make": {
"id": 0,
"code": 1,
"name": "makeA"
}
}
} , {
"1": {
"id": 1,
"code": 2,
"model": "modelB",
"make": {
"id": 0,
"code": 1,
"name": "makeA"
}
}
}]
मेरा विचार को भरने के लिए एक VehicleModel
वस्तु जो एक VehicleMake
वस्तु का संदर्भ होता है है।
// Retrieve data in JSON
$data = ...
$serializer = new Serializer([new ObjectNormalizer(), new ArrayDenormalizer()], [new JsonEncoder()]);
$models = $serializer->deserialize($data, '\Namespace\VehicleModel[]', 'json');
परिणाम में, मेरा वस्तु VehicleModel
सही ढंग से भर जाता है लेकिन $make
तार्किक मुख्य/मान सरणी है:
class VehicleModel {
public $id;
public $code;
public $model;
public $make; // VehicleMake
}
यहाँ मैं क्या कर रहा है। यहां मैं इसके बजाय VehicleMake
चाहता हूं।
क्या ऐसा करने का कोई तरीका है?
Thx
आप सही हैं मेरे पास मेरे जेसन में एक टाइपो है। मैंने अपना प्रश्न अपडेट किया। –
ऑब्जेक्ट नॉर्मलिसर को कन्स्ट्रक्टर में केवल 3 तर्कों की आवश्यकता होती है और तीसरा एक PropertyAccessorInterface लागू करता है, है ना? –
ओह, मैंने केवल एसएफ 3 पर इसका परीक्षण किया। तो एपीआई में बदलाव हो सकता है। यदि v2.8 में कोई प्रकार निकालने वाला कोई तरीका नहीं है, तो यह उत्तर आपके लिए उपयुक्त नहीं हो सकता है। – Yoshi