通过将方法的 return 值格式化为 json 来生成 json

Generate a json by formatting the return value of a method to json

我想通过将方法的 return 值格式化为 json 来生成 json。

json 的格式如下:

{
  "Users": [
  {
    "Id1" : user.Id1,
    "Id2" : user.Id2
  },
  {
    "Id1" : user.Id1,
    "Id2" : user.Id2
  }]
}

应该return JToken的方法:

public static JToken SaveUsers(User user)
{
     context.asp_User_Update(user.Id1, user.Id2 //omitted some arguments);
     return user.Id1 + user.Id2;
}

我想要这个方法,无论它的 ID 是什么,它都会 return 生成一个 json 类似于我上面给出的格式。

我试过这段代码:

JToken json = JObject(
                       JProperty("Users", new JArray(new JObject (new
                       JProperty("Id1", user.Id1), 
                       JProperty("Id2", user.Id2))))
                     );

我知道我需要使用循环动态生成 user.Id1user.Id2 的 JProperty。

假设 users 是用户列表,您应该可以这样做:

    JArray array = new JArray();
    foreach (User user in users)
    {
        JObject userObj = new JObject();
        userObj.Add("Id1", user.Id1);
        userObj.Add("Id2", user.Id2);
        array.Add(userObj);
    }

    JObject result = new JObject();
    result.Add("Users", array);

Fiddle: https://dotnetfiddle.net/n7UDae