JSON.NET Hinzufügen/Bearbeiten Kinder
Ich versuche momentan zu Lesen, dass ein JSON-Dokument vom webserver (es ist eine physische json-Datei) und überprüfen Sie die änderungen gegenüber meiner Datenbank. In anderen Worten, ich brauche zum synchronisieren der json-Dokument und der Datenbank jede Nacht oder so.
Für diese bin ich mit JSON.NET, die ich glaube, ist der Weg zu gehen, wenn die Arbeit mit JSON in C# (?) Die .NET-Plattform ist die version 3.5.
Bisher bin ich in der Lage, um das Dokument Lesen und Werte aus.
Mein JSON sieht wie folgt aus:
{"members":[
{"member":
{
"id":"4282",
"status":"1931",
"aktiv":"1",
"firmanavn":"firmname1",
"firmaUrl":"www.firmsite.com",
"firmaUrlAlternativ":"",
"firmaSidstKontrolleretDato":"30-08-2010",
"firmaGodkendelsesDato":"07-03-2002"
}
},
{"member":
{
"id":"4283",
"status":"1931",
"aktiv":"1",
"firmanavn":"firmname2",
"firmaUrl":"www.firmsite.com",
"firmaUrlAlternativ":"",
"firmaSidstKontrolleretDato":"30-08-2010",
"firmaGodkendelsesDato":"18-12-2000"
}
}, .... and so on
]}
Und mein C# - code ist wie folgt:
using (TextReader reader = File.OpenText(Server.MapPath("~/members.json")))
{
JsonTextReader jsonreader = new JsonTextReader(reader);
var o = JObject.ReadFrom(jsonreader);
jsonreader.Close();
JObject obj = JObject.Parse(o.ToString());
JArray items = (JArray)obj["members"];
var members = Member.GetAllAsList();
JObject item;
JToken token;
List<string> currentIds = new List<string>();
for (int i = 0; i < items.Count; i++)
{
item = (JObject)items[i];
token = item.First;
while (token != null)
{
//ltTest.Text += ((JProperty)token).Value["firmanavn"].ToString() + System.Environment.NewLine;
currentIds.Add(((JProperty)token).Value["id"].ToString());
token = token.Next;
}
}
foreach (var member in members)
{
if (!currentIds.Contains(member.Id.ToString()))
{
ltTest.Text += member.Text;
}
}
}
Also im Grunde gibt es drei Szenarien jetzt:
- Einen Mitglieder-Informationen wurden in der Datenbank geändert: ich brauche zu finden, die Mitglied in der JSON-Dokument und aktualisieren Sie die entsprechenden Felder
- Einem Mitglied aus der Datenbank gelöscht wurden: ich brauche zu finden, die Mitglied in der JSON-Dokument und löschen es.
- Mitglied wurde der Datenbank Hinzugefügt: ich muss hinzufügen, dass Sie Mitglied der JSON-Dokument.
So, ist jemand vertraut mit JSON.NET einen Hinweis darauf zu geben (oder vielleicht einige code-Beispiele?) wie Sie diese erreichen? Ich machte es kaum, tatsächlich Lesen Sie die json-Dokument vom server, also das scheint ein harter Kampf für mich im moment.
InformationsquelleAutor bomortensen | 2011-09-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Json.net hat ein Ding namens Linq-to-JSON, welches laut der website ist:
So unterstützt es LINQ-Abfragen, die ich noch nicht verwendet Linq-to-JSON-aber ich bin sicher, erfüllen alle drei Anforderungen.
Für Referenz-und how-tos, Folgen Sie bitte diesen links:
http://james.newtonking.com/archive/2008/02/11/linq-to-json-beta.aspx
http://james.newtonking.com/projects/json/help/
InformationsquelleAutor Waqas
Ihre Forderungen zu erfüllen, würde ich vorschlagen, die folgenden Schritte:
MEMBER
mit den 8 SpaltenVon dort aus die Ausgabe von SQL-Abfragen, die den Vergleich mit Ihren drei Fälle, die ist:
Eine Mitglieder-Informationen wurden in der Datenbank geändert: ich brauche zu finden, die Mitglied in der JSON-Dokument und aktualisieren Sie die entsprechenden Felder
Um dies zu tun, geben Sie eine SQL-Abfrage, vergleichen Sie jedes Feld, verwenden Sie die Ergebnismenge zu aktualisieren JSON -
Ein Mitglied aus der Datenbank gelöscht wurden: ich brauche zu finden, die Mitglied in der JSON-Dokument und löschen es.
Ausgabe einer SQL-Abfrage zu tun Vergleich mit NICHT IM Komparator aus original-Tabellen im Vergleich mit der
Member
Tabellen, die Sie gerade erstellt haben. Von hier aus gelangen Sie Sammlung von IDs aus der Ergebnismenge, die Sie verwenden können, löschen Sie die entsprechende JSON-ObjektMitglied wurde der Datenbank Hinzugefügt: ich muss hinzufügen, dass Sie Mitglied der JSON-Dokument.
Tun die Umkehrung der vorherigen Schritte. Ausgabe einer SQL-Abfrage vergleichen von Daten, in der Datenbank aber nicht in der
Member
Tabelle. Verwenden Sie die Ergebnismenge hinzufügen, um das JSON-ObjektAm Ende des Prozesses, Sie hätte das JSON-Objekt, die für die Synchronisierung zwischen den beiden
InformationsquelleAutor momo