1

我有一个 API 返回一些对象,调用它ObjectA。实际上,这永远不会自行返回,携带此数据的响应具有以下形式之一;

{
   "Status":"Success",
   "ObjectA": {
          "Prop1":"Value",
          "Prop2":"Value"
    }
}

或者

{
    "Status":"Success",
    "ObjectAs": [
        {
           // instances of ObjectA
        } 
    ]
}

现在我想更新这个对象。它是通过提供您想要更新的属性作为 PUT 的主体来完成的。起初我以为对象是整个身体,在与 API 团队交谈后得知它实际上应该是形式;

{
    "ObjectA": {
        "PropToUpdate":"NewValue"
    }
}

这里的问题是我正在使用;

  string body = JsonConvert.SerializeObject(new { PropToUpdate = "SomeValue" });

但是,这现在需要类似于以下不会编译的内容;

  string body = JsonConvert.SerializeObject(new ObjectA = new { PropToUpdate = "SomeValue" }});

这种情况有什么解决办法吗?我认为不编译的原因是相当明显的,并且我知道一些解决方法(不要使用静态初始化或更改客户端中的类名),有什么方法可以在不使用任何一个的情况下达到预期的结果我提到的解决方法?是否有可能像@字符串文字这样的预编译器方向允许我使用静态初始化?

4

1 回答 1

1
JsonConvert.SerializeObject(new { ObjectA = new { PropToUpdate = "SomeValue" } })
// indented, that's

{
  "ObjectA": {
    "PropToUpdate": "SomeValue"
  }
}
于 2013-10-22T18:25:33.627 回答