gpt4 book ai didi

c# - JSON.NET 添加/编辑 child

转载 作者:行者123 更新时间:2023-11-30 16:28:01 33 4
gpt4 key购买 nike

我目前正在尝试从网络服务器读取一个 JSON 文档(它是一个物理 json 文件)并检查我的数据库的更改。也就是说,我需要每天晚上左右同步json文档和数据库。

为此,我使用 JSON.NET,我认为这是在 C# 中使用 JSON 的方式(?).NET 平台是 3.5 版。

到目前为止,我能够阅读文档并从中获取值。

我的 JSON 看起来像这样:

{"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
]}

而我的C#代码如下:

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;
}
}
}

所以基本上,现在有三种情况:

  • 数据库中的成员信息发生了变化:我需要在JSON文档中找到该成员并更新相应的字段

  • 一个成员已从数据库中删除:我需要在 JSON 文档中找到该成员并将其删除。

  • 一个成员已添加到数据库:我需要将该成员添加到 JSON 文档。

那么,有没有熟悉 JSON.NET 的人可以就如何实现这一点给出提示(或者可能是一些代码示例?)?我几乎没有真正从服务器读取 json 文档,所以目前这对我来说似乎是一场艰苦的战斗。

最佳答案

Json.net 有一个叫做 Linq-to-JSON 的东西,根据该网站,它是:

LINQ to JSON isn't a LINQ provider but rather an API for working with JSON objects. The API has been designed with LINQ in mind to enable the quick creation and querying of JSON objects.

因此它支持 LINQ 查询,我没有使用 Linq-to-JSON,但我相信它会满足您的所有三个要求。

有关引用和操作方法,请点击以下链接: http://james.newtonking.com/archive/2008/02/11/linq-to-json-beta.aspxhttp://james.newtonking.com/projects/json/help/

关于c# - JSON.NET 添加/编辑 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7406339/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com