J'ai l'objet dynamique suivant que je reçois d'une bibliothèque tierce:
IOrderStore os = ss.GetService<IOrderStore>();
IOrderInfo search = os.Orders.Where(t => t.Number == "test").FirstOrDefault();
IOrder orderFound = os.OpenOrder(search, true);
dynamic order = (dynamic)orderFound;
dynamic requirements = order.Title.Commitments[0].Requirements;
Je dois l’analyser dans une chaîne JSON.
J'ai essayé ceci (en utilisant JSON.net):
string jsonString = JsonConvert.SerializeObject(requirements);
return jsonString;
Mais je reçois une chaîne JSON apparemment corrompue, comme ci-dessous:
[{"$ id": "1"}, {"$ id": "2"}, {"$ id": "3"}, {"$ id": "4"}, {"$ id" : "5"} {"$ id": "6"}, {"$ id": "7"}, {"$ id": "8"}, {"$ id": "9"}, {"$ id": "10"}, {"$ id": "11"}, {"$ id": "12"}, {"$ id": "13"}, {"$ id": "14"}, {"$ id": "15"}]
L'objet contient plusieurs propriétés, et pas seulement le "id".
Aucun conseil?
Avez-vous essayé d'utiliser var
au lieu de dynamic
?
// Use "var" in the declaration below.
var requirements = order.Title.Commitments[0].Requirements;
string jsonString = JsonConvert.SerializeObject(requirements);
Lorsque vous voulez seulement désérialiser requirements
sans rien faire d’autre, il n’est pas nécessaire de l’utiliser dynamic
ally.
Essayez d’utiliser Convert.ToString () comme code suivant pour convertir un objet 'dynamic' en 'chaîne' -
dynamic order = (dynamic)orderFound;
dynamic requirements = order.Title.Commitments[0].Requirements;
string validString = Convert.ToString(requirements);