创建 JObject C# 时删除双花括号

rem*_*til 7 c# asp.net json

我正在尝试使用下面提到的结构创建 JsonObject。

{
      "id": "1",
      "name": "XXX",
      "age": "30"
    }
Run Code Online (Sandbox Code Playgroud)

使用代码,

dynamic sampleJson = new JObject();
                sampleJson.Add("id", "1");
                sampleJson.Add("name", "XXX");
                sampleJson.Add("age", "30");
Run Code Online (Sandbox Code Playgroud)

但问题是 json 结构的开头和结尾出现了额外的大括号,如下所示。

{{
  "id": "1",
  "name": "XXX",
  "age": "30"
}}
Run Code Online (Sandbox Code Playgroud)

我使用所需的 JSON 结构作为 API 的帖子正文,它应该采用 JSON 格式(因此不能使用 ToString() 方法使用 JSON 字符串结构)。如何删除多余的大括号并达到我的要求???

JEu*_*vin 6

ToString() 对我不起作用。做了以下事情:

JsonConvert.DeserializeObject(JSONStringHere, typeof(ExpandoObject));
Run Code Online (Sandbox Code Playgroud)


Dav*_*idG 4

由于您使用的是JObject,因此您只需调用ToString()覆盖即可创建 JSON。例如:

JObject sampleJson = new JObject();
sampleJson.Add("id", "1");
sampleJson.Add("name", "XXX");
sampleJson.Add("age", "30");

var json = sampleJson.ToString();
Run Code Online (Sandbox Code Playgroud)

现在你的json变量将包含:

{
  "id": "1",
  "name": "XXX",
  "age": "30"
}
Run Code Online (Sandbox Code Playgroud)

  • 调用 ToString() 方法,我得到的帖子正文为(使用 charles)"{\r\n \"id\": \"1\",\r\n \"name\": \"XXX\ ",\r\n \"age\": \"30\"\r\n}" ,格式不正确 (6认同)