Sto cercando di aggiungere un oggetto JSON da un testo a un file JSON esistente utilizzando JSON.Net. Per esempio, se ho i dati JSON, come di seguito:Come si aggiunge un JToken a un JObject?
{
"food": {
"fruit": {
"apple": {
"colour": "red",
"size": "small"
},
"orange": {
"colour": "orange",
"size": "large"
}
}
}
}
ho cercato di farlo in questo modo:
var foodJsonObj = JObject.Parse(jsonText);
var bananaJson = JObject.Parse(@"{ ""banana"" : { ""colour"": ""yellow"", ""size"": ""medium""}}");
var bananaToken = bananaJson as JToken;
foodJsonObj["food"]["fruit"]["orange"].AddAfterSelf(bananaToken);
Ma questo dà l'errore: "Newtonsoft.Json.Linq.JProperty cannot have multiple values."
ho in realtà ho provato alcuni modi diversi ma non riesco ad arrivare da nessuna parte. Nel mio esempio, quello che voglio davvero è aggiungere il nuovo oggetto a "frutta". Per favore fatemi sapere se c'è un modo migliore per farlo o una libreria più semplice da usare.
Nota: Usa 'JToken.Parse' (o 'JToken.FromObject') al posto di 'JObject.Parse', in ultima riga. Come questo funziona anche per oggetti semplici come la stringa. –
cosa fare se voglio sovrascrivere una Jproperty. – Daniel
@Daniel - Se per "sovrascrivere" si intende sostituire completamente 'JProperty' con uno diverso, è possibile utilizzare il metodo' Sostituisci'. Se si desidera solo modificare il valore di 'JProperty', è possibile impostare la proprietà' Value' su di esso; è scrivibile. Consulta il [riferimento API LINQ-to-JSON] (https://www.newtonsoft.com/json/help/html/N_Newtonsoft_Json_Linq.htm). –