J'ai J'ai besoin de pouvoir appliquer une requête de filtre comme par exemple où nom = "A" et lieu = "NY" puis récupérez 2 enregistrements d'en haut. P> J'ai essayé du code comme ci-dessous mais je n'ai pu analyser un enregistrement à la fois de la collection ci-dessus. Et aussi la 2e ligne semble être une erreur avec un message: P> "Impossible d'accéder à la valeur de l'enfant sur newtonsoft.json.linq.jvalue." P>
blockQuote> merci. p> p> observablecollection
3 Réponses :
ici:
[ { "name": "A", "location": "NY" }, { "name": "B", "location": "NJ" }, { "name": "A", "location": "NY" }, { "name": "D", "location": "MA" } ]
Tout d'abord, corrigeons le format JSON. Si vous parlez de collecte ou de matrice, votre format JSON doit être comme celui-ci:
JArray jsonArray = JArray.Parse(jsonString); var match = jsonArray.Where(i => i["name"].ToString() == "A" && i["location"].ToString() == "NY").ToList();
Vous savez que votre réseau JSON est incorrect, n'est-ce pas? Un tableau est dans des crochets Mon conseil serait de séparer vos préoccupations: diviser votre problème en parties distinctes: p> Si vous faites cela, votre code sera plus facile à comprendre, plus réutilisable, plus facile à tester et plus facile à changer. Qui ne veut pas ça? P> pour cela, j'écris une fonction d'extension. De cette façon, cela ressemble plus à Linq. Voir Méthodes d'extension Démystifié p> [...] code>. Je suppose que c'est une erreur de frappe.
Convertissez la chaîne en une séquence de personnes h3>
const int name = "John Doe";
const int location = "New York City";
string jsonText = ...
var result = jsonText.ToPersons()
.Where(person => person.Name == name && person.Location == location);
topersons () code> pour d'autres déclarations LINQ: "Donnez-moi toutes les personnes âgées", "donnez-moi les villes où mes personnes vivent". li>
TOPERSON () CODE> LI>
ul> p>
Le JSON dans la collection d'échantillons ne ressemble pas à un réseau JSON correctement construit
Tandis qu'en non-réponse par JDOG Ils ont suggéré des informations dans Stackoverflow.com/questions/ 49254281 / ... peut être utile que cette question ne peut être répondue sans réelle exemple de reproductible minimal . Comme il n'y a pas de JSON réel à condition qu'il ne soit pas clair si le code manque effectivement certains
.child code> appels ou autre chose.
Désolé mon mauvais. Ont corrigé le format. Merci.