将数据解析为嵌套的JSON

本文关键字:嵌套 JSON 数据 | 更新日期: 2023-09-27 18:00:15

我想创建嵌套的JSON。我从sql表中获取数据。表中的数据格式:

+---------------------+---------+
|    Domain           |  Action |
+---------------------+---------+
| Keyword             |  New    |
| Keyword             |  Edit   |
| Keyword             |  Delete |
| Keyword.Case        |  New    |
| Keyword.Case        |  Edit   |
| Keyword.Case        |  Delete |
| Keyword.Case.Action |  New    |
| Keyword.Case.Action |  Edit   |
| Keyword.Case.Action |  Delete |
| User                |  New    |
| User                |  Edit   |
| User                |  Delete |
+---------------------+---------+

我已经使用linq查询从sql表中检索了数据。现在我想解析它,得到下面提到的层次结构。我认为数据应该采用以下格式:

[
 {
   "Domain": "Keyword",
   "Actions": ["New", "Edit", "Delete"],
   "Nodes": [
             {
               "Domain": "Keyword.Case",
               "Actions": ["New", "Edit", "Delete"],
               "Nodes": [
                         {
                          "Domain": "Keyword.Case.Action",
                          "Actions": ["New", "Edit", "Delete"],
                          "Nodes": []
                          }
                         ]
              }
             ],
 {
   "Domain": "User",
   "Actions": ["New", "Edit", "Delete"],
   "Nodes": []
 }
]

点(.)表示它是子节点。例如keyword.case.action;在本例中,Keyword是Case的父级,Case是Action的父级表示Action是Case的子级,Case是关键字的子级。我想要这样的东西:

  • 关键字
    • 编辑
    • 删除
    • 新建
    • 关键字。案例
      • 编辑
      • 删除
      • 新建
      • 关键字。案例行动
      • 编辑
      • 删除
      • 新建
  • 用户
    • 编辑
    • 删除
    • 新建

有人能帮忙吗?提前感谢

将数据解析为嵌套的JSON

当您使用LinQ检索SQL数据时,您应该有一个IEnumerable结果。你可以直接序列化:

var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string jsonOutput = serializer.Serialize(dbResult);

其中dbResult是在LinQ操作之后检索的结果