【问题标题】:Extract json objects to json in c#在c#中提取json对象到json
【发布时间】:2018-06-07 09:04:28
【问题描述】:

我在 c# 中有一个 JArray,我想将其 转置/转换 到:

目前我正在做类似的事情:

var mockDataPath = "...\\DummyData.json";
var rawJSON = System.IO.File.ReadAllText(mockDataPath);
JArray jArray = JArray.Parse(rawJSON);

也许 linq 可以完成这项工作,但我不知道如何。

jArray.Children().Select(...);

并且对象(Obj2,Obj3)包含复杂的分层数据。

Here an Link to a json pastiebin 与原始 json 数据(这将是“...\DummyData.json”)

我在找
something like an XSL Transformation 为 json。或者,如果 LINQ 可以完成这项工作,那就更好了。

【问题讨论】:

  • Newtonsoft.Json.JsonConvert.SerializeObject(arrayname);
  • 使用上面的语句并安装newtonsoft json包
  • 为什么1和4消失了?
  • 显然是there is a tool
  • @user1911091:你为什么要删除 1 和 4,而不是 2 和 3?这个问题已经被问过好几次了,如果没有这些信息,你的问题就没有足够的意义来有意义地回答它。

标签: c# json linq


【解决方案1】:

你可以使用Json.NetDeserialize 你的json:

 Newtonsoft.Json.JsonConvert.Deserialize("yuor json string");

只需在 nuget 包中查找 Newtonsoft.Json

【讨论】:

  • 这并没有回答关于删除项目 1 和 4 的问题。
【解决方案2】:

我终于做到了:

            JArray resultJArray = new JArray();
            foreach(JObject item in jArray)
            {
                JObject obj = JObject.FromObject( new { Obj2 = item.GetValue("Obj2"), Obj3 = item.GetValue("Obj3") } );
                resultJArray.Add(obj);
            }

            var transformedJson = JsonConvert.SerializeObject(resultJArray, Formatting.Indented);

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多