Nancy模型将JSON字符串数组绑定到对象

问题描述 投票:0回答:1

我有一个接受以下JSON结构的API:

{
   "name": {
      "surname": "Johnson",
      "firstname": "Andrew"
   }
   "options": {
      "something": "good",
      "somethingElse": "bad"
   }
}

为此,我有一个绑定var req = this.Bind<MyModel>();的模型。

    public class MyModel
    {
        public IDictionary<string, object> Name;
        public IDictionary<string, object> Options;
    }

一切正常,除非我将数组传递给JSON

{
   "name": {
      "surname": "Johnson",
      "firstname": "Andrew"
   }
   "options": {
      "something": ["good", "bad"]
   }
}

除非我将MyModel更改为public IDictionary<string, string[]> Options;之类,否则我总是objectOptionsnull。显然,如果我这样更改Options,则我共享的第一个JSON示例将引发错误。有没有办法成功绑定它?我无法向MyModel添加另一个属性,请求JSON必须具有相同的结构,即"name": {...}, "options": {...}

c# json model-binding nancy
1个回答
0
投票

创建这样的课程

public class Name
{
    public string surname { get; set; }
    public string firstname { get; set; }
}

public class Options
{
    public string something { get; set; }
    public string somethingElse { get; set; }
}

public class RootObject
{
    public Name name { get; set; }
    public Options options { get; set; }
}

并将var req = this.Bind<MyModel>();更改为

var req = this.Bind<RootObject>();
© www.soinside.com 2019 - 2024. All rights reserved.