Mon other question semble être trop générique, alors j'ai pensé que j'en créerais un nouveau sur les détails. Désolé si cela est considéré comme une mauvaise pratique. J'essaie de sérialiser des objets C# en chaînes JSON avec MonoTouch et l'espace de noms System.Json d'une manière qui ne nécessite pas que je descende moi-même à travers le (s) objet (s). Est-ce possible? Si oui, comment le faire correctement?Comment sérialiser en utilisant System.Json dans MonoTouch
La désérialisation fonctionne bien en transformant implicitement un JsonValue en une chaîne, int, quel que soit. De plus, descendre dans la hiérarchie n'est pas un problème. Comme si:
JsonValue json = JsonValue.Parse(jsonString);
int mainValue = json["mainValue"];
JsonValue subValues = json["subValues"];
int subValue1 = subValues["subValue1"];
Le contraire n'est possible qu'avec les types élémentaires (string/int/...). Les autres objets ne peuvent pas être castés en JsonValue/JsonObject malheureusement. Pas même des structures vraiment simples avec seulement deux entrées.
// This works
JsonValue json = new JsonObject(new KeyValuePair<string,JsonValue>("mainValue", 12345));
// Cannot (implicitly) convert type 'MyObjectType' to 'System.Json.JsonValue'
MyObjectType myObject = new MyObjectType();
JsonValue subValues = myObject;
// Cannot (implicitly) convert type 'MySimpleStruct' to 'System.Json.JsonObject'
MySimpleStruct myStruct;
myStruct.x = 1;
myStruct.y = 2;
JsonValue myStructJson = myStruct;
Comme mon objet a plusieurs niveaux d'autres objets imbriqués au sein, en marchant à travers elle par moi-même et attribuer toutes les valeurs serait un grand PITA. Existe-t-il un moyen plus simple avec System.Json?
La meilleure pratique aurait été de modifier la question initiale d'inclure cette information:) – Luke
Lol ne soyez pas donc grossier @Luke;) mais je suis d'accord avec vous :) de toute façon j'espère que quelqu'un peut l'aider avec la question JSON ce n'est pas ma question: p – dalexsoto