0

如何将以下 JSON 反序列化为可以绑定到转发器的引用元素集合?

    {
       “询问”:{
          “计数”:3,
          “创建”:“2012-06-27T19:44:47Z”,
          "lang":"en-US",
          “结果”:{
             “引用”:[
                {
                   “符号”:“UAM”,
                   “问”:空,
                   "AverageDailyVolume":"262683",
                   “出价”:空,
                   "AskRealtime":"10.07",
                   "BidRealtime":"10.06",
                   "账面价值":"12.468",
                   "Change_PercentChange":"-0.24 - -2.33%",
                   "变化":"-0.24",
                   “佣金”:空,
                   "ChangeRealtime":"-0.24",
                   "AfterHoursChangeRealtime":"N/A - N/A",
                   "分红":"0.00",
                   "最后交易日期":"2012 年 6 月 27 日",
                   "交易日期":null,
                   "EarningsShare":"0.096",
                   "ErrorIndicationreturnedforsymbolchangedinvalid":null,
                   "EPSEstimateCurrentYear":"0.68",
                   "EPSEstimateNextYear":"0.77",
                   "EPSEstimateNextQuarter":"0.16",
                   "DaysLow":"10.06",
                   "DaysHigh":"10.33",
                   "YearLow":"8.79",
                   "年高":"13.62",
                   "HoldingsGainPercent":"- - -",
                   "年化增益":null,
                   "HoldingsGain":null,
                   "HoldingsGainPercentRealtime":"N/A - N/A",
                   "HoldingsGainRealtime":null,
                   "MoreInfo":"cnpriIed",
                   "OrderBookRealtime":null,
                   "市值":"860.4M",
                   "MarketCapRealtime":null,
                   "EBITDA":"105.7M",
                   "ChangeFromYearLow":"+1.27",
                   "PercentChangeFromYearLow":"+14.45%",
                   "LastTradeRealtimeWithTime":"N/A - 10.06 ",
                   "ChangePercentRealtime":"N/A - -2.33%",
                   "ChangeFromYearHigh":"-3.56",
                   "PercebtChangeFromYearHigh":"-26.14%",
                   "LastTradeWithTime":"3:29pm - 10.06 ",
                   "LastTradePriceOnly":"10.06",
                   “高限”:空,
                   "下限":null,
                   "DaysRange":"10.06 - 10.33",
                   "DaysRangeRealtime":"N/A - N/A",
                   "FiftydayMovingAverage":"10.0519",
                   "TwoHundreddayMovingAverage":"10.8884",
                   "ChangeFromTwoHundreddayMovingAverage":"-0.8284",
                   "PercentChangeFromTwoHundreddayMovingAverage":"-7.61%",
                   "ChangeFromFiftydayMovingAverage":"+0.0081",
                   "PercentChangeFromFiftydayMovingAverage":"+0.08%",
                   "名称":"美国环球",
                   “注释”:空,
                   "开":"10.32",
                   "PreviousClose":"10.30",
                   “支付价格”:空,
                   "变化百分比":"-2.33%",
                   "PriceSales":"0.40",
                   "PriceBook":"0.83",
                   "ExDividendDate":null,
                   "PERatio":"107.29",
                   "股息支付日期":"10 年 8 月 19 日",
                   "PERatioRealtime":null,
                   "PEGRatio":"1.01",
                   "PriceEPSEstimateCurrentYear":"15.15",
                   "PriceEPSEstimateNextYear":"13.38",
                   "符号":"UAM",
                   "SharesOwned":null,
                   "空头比率":"4.80",
                   "最后交易时间":"下午 3:29",
                   “TickerTrend”:“-==++-”,
                   "OneyrTargetPrice":"12.00",
                   “卷”:“491440”,
                   "HoldingsValue":null,
                   "HoldingsValueRealtime":null,
                   "年份范围":"8.79 - 13.62",
                   "DaysValueChange":"- - -2.33%",
                   "DaysValueChangeRealtime":"N/A - N/A",
                   “证券交易所”:“纽约证券交易所”,
                   "股息率":null,
                   “百分比变化”:“-2.33%”
                },
                {
                   "符号":"WCG",
                   “问”:空,
                   "AverageDailyVolume":"898853",
                   “出价”:空,
                   "AskRealtime":"49.72",
                   "BidRealtime":"49.68",
                   "账面价值":"27.418",
                   "Change_PercentChange":"-0.25 - -0.50%",
                   "变化":"-0.25",
                   “佣金”:空,
                   "ChangeRealtime":"-0.25",
                   "AfterHoursChangeRealtime":"N/A - N/A",
                   "分红":"0.00",
                   "最后交易日期":"2012 年 6 月 27 日",
                   "交易日期":null,
                   "EarningsShare":"6.77",
                   "ErrorIndicationreturnedforsymbolchangedinvalid":null,
                   "EPSEstimateCurrentYear":"5.42",
                   "EPSEstimateNextYear":"5.20",
                   "EPSEstimateNextQuarter":"1.51",
                   "DaysLow":"49.64",
                   "DaysHigh":"50.765",
                   "YearLow":"33.29",
                   "年高":"74.41",
                   "HoldingsGainPercent":"- - -",
                   "年化增益":null,
                   "HoldingsGain":null,
                   "HoldingsGainPercentRealtime":"N/A - N/A",
                   "HoldingsGainRealtime":null,
                   "MoreInfo":"cnprmiIed",
                   "OrderBookRealtime":null,
                   "市值":"2.141B",
                   "MarketCapRealtime":null,
                   "EBITDA":"475.0M",
                   "ChangeFromYearLow":"+16.39",
                   "PercentChangeFromYearLow":"+49.23%",
                   "LastTradeRealtimeWithTime":"N/A - 49.68 ",
                   "ChangePercentRealtime":"N/A - -0.50%",
                   "ChangeFromYearHigh":"-24.73",
                   "PercebtChangeFromYearHigh":"-33.23%",
                   "LastTradeWithTime":"3:29pm - 49.68 ",
                   "LastTradePriceOnly":"49.68",
                   “高限”:空,
                   "下限":null,
                   "DaysRange":"49.64 - 50.765",
                   "DaysRangeRealtime":"N/A - N/A",
                   "FiftydayMovingAverage":"55.0451",
                   "TwoHundreddayMovingAverage":"60.745",
                   "ChangeFromTwoHundreddayMovingAverage":"-11.065",
                   "PercentChangeFromTwoHundreddayMovingAverage":"-18.22%",
                   "ChangeFromFiftydayMovingAverage":"-5.3651",
                   "PercentChangeFromFiftydayMovingAverage":"-9.75%",
                   "名称":"Wellcare Health P",
                   “注释”:空,
                   "打开":"49.75",
                   "上一个关闭":"49.93",
                   “支付价格”:空,
                   "变化百分比":"-0.50%",
                   "价格销售":"0.33",
                   "PriceBook":"1.82",
                   "ExDividendDate":null,
                   "PERatio":"7.38",
                   "股息支付日期":null,
                   "PERatioRealtime":null,
                   "PEGRatio":"0.58",
                   "PriceEPSEstimateCurrentYear":"9.21",
                   "PriceEPSEstimateNextYear":"9.60",
                   "符号":"WCG",
                   "SharesOwned":null,
                   "空头比率":"1.70",
                   "最后交易时间":"下午 3:29",
                   "TickerTrend":" =--==- ",
                   "OneyrTargetPrice":"73.10",
                   “卷”:“517119”,
                   "HoldingsValue":null,
                   "HoldingsValueRealtime":null,
                   "年份范围":"33.29 - 74.41",
                   "DaysValueChange":"- - -0.50%",
                   "DaysValueChangeRealtime":"N/A - N/A",
                   “证券交易所”:“纽约证券交易所”,
                   "股息率":null,
                   "百分比变化":"-0.50%"
                },
                {
                   “符号”:“WLP”,
                   “问”:空,
                   "AverageDailyVolume":"2976430",
                   “出价”:空,
                   "AskRealtime":"69.70",
                   "BidRealtime":"69.67",
                   "账面价值":"70.91",
                   "Change_PercentChange":"+0.58 - +0.84%",
                   "变化":"+0.58",
                   “佣金”:空,
                   "变化实时":"+0.58",
                   "AfterHoursChangeRealtime":"N/A - N/A",
                   "股息份额":"1.076",
                   "最后交易日期":"2012 年 6 月 27 日",
                   "交易日期":null,
                   "EarningsShare":"7.265",
                   "ErrorIndicationreturnedforsymbolchangedinvalid":null,
                   "EPSEstimateCurrentYear":"7.78",
                   "EPSEstimateNextYear":"8.54",
                   "EPSEstimateNextQuarter":"2.02",
                   "DaysLow":"69.22",
                   "DaysHigh":"70.65",
                   "YearLow":"56.61",
                   "年高":"80.90",
                   "HoldingsGainPercent":"- - -",
                   "年化增益":null,
                   "HoldingsGain":null,
                   "HoldingsGainPercentRealtime":"N/A - N/A",
                   "HoldingsGainRealtime":null,
                   "MoreInfo":"cnprmiIed",
                   "OrderBookRealtime":null,
                   "市值":"23.052B",
                   "MarketCapRealtime":null,
                   "EBITDA":"4.991B",
                   "ChangeFromYearLow":"+13.07",
                   "PercentChangeFromYearLow":"+23.09%",
                   "LastTradeRealtimeWithTime":"N/A - 69.68 ",
                   "ChangePercentRealtime":"N/A - +0.84%",
                   "ChangeFromYearHigh":"-11.22",
                   "PercebtChangeFromYearHigh":"-13.87%",
                   "LastTradeWithTime":"3:29pm - 69.68 ",
                   "LastTradePriceOnly":"69.68",
                   “高限”:空,
                   "下限":null,
                   "DaysRange":"69.22 - 70.65",
                   "DaysRangeRealtime":"N/A - N/A",
                   "FiftydayMovingAverage":"67.8471",
                   "TwoHundreddayMovingAverage":"67.6942",
                   "ChangeFromTwoHundreddayMovingAverage":"+1.9858",
                   "PercentChangeFromTwoHundreddayMovingAverage":"+2.93%",
                   "ChangeFromFiftydayMovingAverage":"+1.8329",
                   "PercentChangeFromFiftydayMovingAverage":"+2.70%",
                   "名称":"WellPoint, Inc. C",
                   “注释”:空,
                   "打开":"69.40",
                   "上一个关闭":"69.10",
                   “支付价格”:空,
                   "变化百分比":"+0.84%",
                   "价格销售":"0.37",
                   "PriceBook":"0.97",
                   "ExDividendDate":"6 月 6 日",
                   "PERatio":"9.51",
                   "DividendPayDate":"6 月 25 日",
                   "PERatioRealtime":null,
                   "PEGRatio":"0.88",
                   "PriceEPSEstimateCurrentYear":"8.88",
                   "PriceEPSEstimateNextYear":"8.09",
                   "符号":"WLP",
                   "SharesOwned":null,
                   "空头比率":"2.90",
                   "最后交易时间":"下午 3:29",
                   "TickerTrend":" ==-=== ",
                   "OneyrTargetPrice":"82.89",
                   “卷”:“3187310”,
                   "HoldingsValue":null,
                   "HoldingsValueRealtime":null,
                   "年份范围":"56.61 - 80.90",
                   "DaysValueChange":"- - +0.84%",
                   "DaysValueChangeRealtime":"N/A - N/A",
                   “证券交易所”:“纽约证券交易所”,
                   "股息率":"1.56",
                   “百分比变化”:“+0.84%”
                }
             ]
          }
       }
    }

我正在使用 C#,但无法弄清楚如何构造类结构以获取提取的 Quote 对象列表。这是我尝试过的:

    公共类容器
    {
        [JsonProperty("查询")]
        公共查询数据{get; 放; }
    }

    公开课查询
    {
        [JsonProperty("count")]
        公共 int 计数 { 获取;放; }
        [JsonProperty("创建")]
        公共日期时间创建{获取;放; }
        [JsonProperty("lang")]
        公共字符串 Lang { 获取;放; }
        [JsonProperty("结果")]
        公开列表结果 { 获取;放; }
    }

    公开课报价
    {
        [JsonProperty("符号")]
        公共字符串符号 { 获取;放; }
        [JsonProperty("问")]
        公共字符串询问{获取;放; }
        [JsonProperty("AverageDailyVolume")]
        公共字符串 AverageDailyVolume { 获取;放; }
    }
4

1 回答 1

1

Don't know if this will help you now but your problem is your json doesn't conform to you object model. To deserialise back to a Container object with a Query object that contains a List of results your results json should look like the following:

 "results": [
  {
    "symbol": "UAM",
    "Ask": null,
    "AverageDailyVolume": "262683"
  },
  {
    "symbol": "WCG",
    "Ask": null,
    "AverageDailyVolume": "898853"
  },
  {
    "symbol": "WLP",
    "Ask": null,
    "AverageDailyVolume": "2976430"
  }
]

But your json looks like this:

"results":{
         "quote":[
            {
               "symbol":"UAM",
               "Ask":null,
               "AverageDailyVolume":"262683",
            }
          ]
 }

The "quote" property is what is messing it up. So in order to map this you either have to change the source json or implement some kind of custom list that has a property "quote"....OR you deserialise it manually. But natively json will expext an object as

{
   ...Some object
} 

and not:

"myobject" : {
    ...Some object.
} 

when inside a collection.

于 2012-07-12T08:51:40.807 回答