0

次の JSON を、リピーターにバインドできる引用要素のコレクションに逆シリアル化するにはどうすればよいですか?

    {
       "クエリ":{
          "カウント":3,
          "作成":"2012-06-27T19:44:47Z",
          "lang":"en-US",
          "結果":{
             "見積もり":[
                {
                   "シンボル":"UAM",
                   "尋ねる":null,
                   "AverageDailyVolume":"262683",
                   "入札":null,
                   "AskRealtime":"10.07",
                   "BidRealtime":"10.06",
                   "ブックバリュー":"12.468",
                   "Change_PercentChange":"-0.24 - -2.33%",
                   "変更":"-0.24",
                   "コミッション":null,
                   "ChangeRealtime":"-0.24",
                   "AfterHoursChangeRealtime":"該当なし - 該当なし",
                   "配当率":"0.00",
                   "LastTradeDate":"2012/6/27",
                   "取引日":null,
                   "収益シェア":"0.096",
                   "ErrorIndication returned forsymbolchangeinvalid": null,
                   "EPSEstimateCurrentYear":"0.68",
                   "EPSEstimateNextYear":"0.77",
                   "EPSEstimateNextQuarter":"0.16",
                   "DaysLow":"10.06",
                   "DaysHigh":"10.33",
                   "年最安値":"8.79",
                   "最盛期":"13.62",
                   "HoldingsGainPercent":"- - -",
                   "AnnualizedGain":null,
                   "HoldingsGain":null,
                   "HoldingsGainPercentRealtime":"該当なし - 該当なし",
                   "HoldingsGainRealtime":null,
                   "MoreInfo":"cnpriIed",
                   "OrderBookRealtime":null,
                   "時価総額":"860.4M",
                   "MarketCapRealtime":null,
                   "EBITDA":"105.7M",
                   "ChangeFromYearLow":"+1.27",
                   "PercentChangeFromYearLow":"+14.45%",
                   "LastTradeRealtimeWithTime":"該当なし - 10.06 ",
                   "ChangePercentRealtime":"該当なし - -2.33%",
                   "ChangeFromYearHigh":"-3.56",
                   "PercebtChangeFromYearHigh":"-26.14%",
                   "LastTradeWithTime":"3:29pm - 10.06 ",
                   "LastTradePriceOnly":"10.06",
                   "HighLimit":null,
                   "LowLimit":null,
                   "DaysRange":"10.06 - 10.33",
                   "DaysRangeRealtime":"該当なし - 該当なし",
                   "FiftydayMovingAverage":"10.0519",
                   "二百日移動平均":"10.8884",
                   "ChangeFromTwoHundreddayMovingAverage":"-0.8284",
                   "PercentChangeFromTwoHundreddayMovingAverage":"-7.61%",
                   "ChangeFromFiftydayMovingAverage":"+0.0081",
                   "PercentChangeFromFiftydayMovingAverage":"+0.08%",
                   "名前":"ユニバーサル アメリカ",
                   "メモ":null,
                   "開く":"10.32",
                   "PreviousClose":"10.30",
                   "PricePaid":null,
                   "ChangeinPercent":"-2.33%",
                   "価格販売":"0.40",
                   "プライスブック":"0.83",
                   "ExDividendDate":null,
                   "PERatio":"107.29",
                   "配当支払日":"2010 年 8 月 19 日",
                   "PERatioRealtime":null,
                   "PEGRatio":"1.01",
                   "PriceEPSEstimateCurrentYear":"15.15",
                   "PriceEPSEstimateNextYear":"13.38",
                   "シンボル":"UAM",
                   "SharesOwned":null,
                   "ShortRatio":"4.80",
                   "LastTradeTime":"3:29pm",
                   "TickerTrend":" -==++- ",
                   "OneyrTargetPrice":"12.00",
                   "ボリューム":"491440",
                   "HoldingsValue":null,
                   "HoldingsValueRealtime":null,
                   "年の範囲":"8.79 - 13.62",
                   "DaysValueChange":"- - -2.33%",
                   "DaysValueChangeRealtime":"該当なし - 該当なし",
                   "証券取引所":"NYSE",
                   "配当利回り":null,
                   "変化率":"-2.33%"
                }、
                {
                   "シンボル":"WCG",
                   "尋ねる":null,
                   "AverageDailyVolume":"898853",
                   "入札":null,
                   "AskRealtime":"49.72",
                   "BidRealtime":"49.68",
                   "簿価":"27.418",
                   "Change_PercentChange":"-0.25 - -0.50%",
                   "変更":"-0.25",
                   "コミッション":null,
                   "ChangeRealtime":"-0.25",
                   "AfterHoursChangeRealtime":"該当なし - 該当なし",
                   "配当率":"0.00",
                   "LastTradeDate":"2012/6/27",
                   "取引日":null,
                   "収益シェア":"6.77",
                   "ErrorIndication returned forsymbolchangeinvalid": null,
                   "EPSEstimateCurrentYear":"5.42",
                   "EPSEstimateNextYear":"5.20",
                   "EPSEstimateNextQuarter":"1.51",
                   "最低日数":"49.64",
                   "最高日数":"50.765",
                   "年最安値":"33.29",
                   "年最高":"74.41",
                   "HoldingsGainPercent":"- - -",
                   "AnnualizedGain":null,
                   "HoldingsGain":null,
                   "HoldingsGainPercentRealtime":"該当なし - 該当なし",
                   "HoldingsGainRealtime":null,
                   "MoreInfo":"cnprmied",
                   "OrderBookRealtime":null,
                   "時価総額":"2.141B",
                   "MarketCapRealtime":null,
                   "EBITDA":"475.0M",
                   "ChangeFromYearLow":"+16.39",
                   "PercentChangeFromYearLow":"+49.23%",
                   "LastTradeRealtimeWithTime":"該当なし - 49.68 ",
                   "ChangePercentRealtime":"該当なし - -0.50%",
                   "ChangeFromYearHigh":"-24.73",
                   "PercebtChangeFromYearHigh":"-33.23%",
                   "LastTradeWithTime":"午後 3 時 29 分 - 49時 68 分",
                   "LastTradePriceOnly":"49.68",
                   "HighLimit":null,
                   "LowLimit":null,
                   "DaysRange":"49.64 - 50.765",
                   "DaysRangeRealtime":"該当なし - 該当なし",
                   "FiftydayMovingAverage":"55.0451",
                   "二百日移動平均":"60.745",
                   "ChangeFromTwoHundreddayMovingAverage":"-11.065",
                   "PercentChangeFromTwoHundreddayMovingAverage":"-18.22%",
                   "ChangeFromFiftydayMovingAverage":"-5.3651",
                   "PercentChangeFromFiftydayMovingAverage":"-9.75%",
                   "名前":"ウェルケアヘルスP",
                   "メモ":null,
                   "開く":"49.75",
                   "PreviousClose":"49.93",
                   "PricePaid":null,
                   "ChangeinPercent":"-0.50%",
                   "販売価格":"0.33",
                   "プライスブック":"1.82",
                   "ExDividendDate":null,
                   "PERatio":"7.38",
                   "配当支払日":null,
                   "PERatioRealtime":null,
                   "PEGRatio":"0.58",
                   "PriceEPSEstimateCurrentYear":"9.21",
                   "PriceEPSEstimateNextYear":"9.60",
                   "シンボル":"WCG",
                   "SharesOwned":null,
                   "ShortRatio":"1.70",
                   "LastTradeTime":"3:29pm",
                   "TickerTrend":" =--==- ",
                   "OneyrTargetPrice":"73.10",
                   "ボリューム":"517119",
                   "HoldingsValue":null,
                   "HoldingsValueRealtime":null,
                   "年の範囲":"33.29 - 74.41",
                   "DaysValueChange":"- - -0.50%",
                   "DaysValueChangeRealtime":"該当なし - 該当なし",
                   "証券取引所":"NYSE",
                   "配当利回り":null,
                   "変化率":"-0.50%"
                }、
                {
                   "シンボル":"WLP",
                   "尋ねる":null,
                   "AverageDailyVolume":"2976430",
                   "入札":null,
                   "AskRealtime":"69.70",
                   "BidRealtime":"69.67",
                   "簿価":"70.91",
                   "Change_PercentChange":"+0.58 - +0.84%",
                   "変更":"+0.58",
                   "コミッション":null,
                   "ChangeRealtime":"+0.58",
                   "AfterHoursChangeRealtime":"該当なし - 該当なし",
                   "配当シェア":"1.076",
                   "LastTradeDate":"2012/6/27",
                   "取引日":null,
                   "収益シェア":"7.265",
                   "ErrorIndication returned forsymbolchangeinvalid": null,
                   "EPSEstimateCurrentYear":"7.78",
                   "EPSEstimateNextYear":"8.54",
                   "EPSEstimateNextQuarter":"2.02",
                   "最低日数":"69.22",
                   "最高日数":"70.65",
                   "年最安値":"56.61",
                   "年高":"80.90",
                   "HoldingsGainPercent":"- - -",
                   "AnnualizedGain":null,
                   "HoldingsGain":null,
                   "HoldingsGainPercentRealtime":"該当なし - 該当なし",
                   "HoldingsGainRealtime":null,
                   "MoreInfo":"cnprmied",
                   "OrderBookRealtime":null,
                   "時価総額":"23.052B",
                   "MarketCapRealtime":null,
                   "EBITDA":"4.991B",
                   "ChangeFromYearLow":"+13.07",
                   "PercentChangeFromYearLow":"+23.09%",
                   "LastTradeRealtimeWithTime":"該当なし - 69.68 ",
                   "ChangePercentRealtime":"該当なし - +0.84%",
                   "ChangeFromYearHigh":"-11.22",
                   "PercebtChangeFromYearHigh":"-13.87%",
                   "LastTradeWithTime":"3:29pm - 69.68 ",
                   "LastTradePriceOnly":"69.68",
                   "HighLimit":null,
                   "LowLimit":null,
                   "DaysRange":"69.22 - 70.65",
                   "DaysRangeRealtime":"該当なし - 該当なし",
                   "FiftydayMovingAverage":"67.8471",
                   "二百日移動平均":"67.6942",
                   "ChangeFromTwoHundreddayMovingAverage":"+1.9858",
                   "PercentChangeFromTwoHundreddayMovingAverage":"+2.93%",
                   "ChangeFromFiftydayMovingAverage":"+1.8329",
                   "PercentChangeFromFiftydayMovingAverage":"+2.70%",
                   "Name":"WellPoint, Inc. C",
                   "メモ":null,
                   "開く":"69.40",
                   "PreviousClose":"69.10",
                   "PricePaid":null,
                   "ChangeinPercent":"+0.84%",
                   "価格販売":"0.37",
                   "プライスブック":"0.97",
                   "ExDividendDate":"6月6日",
                   "PERatio":"9.51",
                   "配当支払日":"6月25日",
                   "PERatioRealtime":null,
                   "PEGRatio":"0.88",
                   "PriceEPSEstimateCurrentYear":"8.88",
                   "PriceEPSEstimateNextYear":"8.09",
                   "シンボル":"WLP",
                   "SharesOwned":null,
                   "ShortRatio":"2.90",
                   "LastTradeTime":"3:29pm",
                   "TickerTrend":" ==-=== ",
                   "OneyrTargetPrice":"82.89",
                   "ボリューム":"3187310",
                   "HoldingsValue":null,
                   "HoldingsValueRealtime":null,
                   "年の範囲":"56.61 - 80.90",
                   "DaysValueChange":"- - +0.84%",
                   "DaysValueChangeRealtime":"該当なし - 該当なし",
                   "証券取引所":"NYSE",
                   "配当利回り":"1.56",
                   "変化率":"+0.84%"
                }
             ]
          }
       }
    }

私は C# を使用していますが、クラス構造を構築して List of Quote オブジェクトを抽出する方法がわかりません。これが私が試したことです:

    パブリック クラス コンテナー
    {
        [JsonProperty("クエリ")]
        パブリック クエリ データ { get; 設定; }
    }

    パブリック クラス クエリ
    {
        [JsonProperty("カウント")]
        public int カウント { get; 設定; }
        [JsonProperty("作成済み")]
        public DateTime Created { get; 設定; }
        [JsonProperty("言語")]
        公開文字列 Lang { get; 設定; }
        [JsonProperty("結果")]
        パブリック リストの結果 { get; 設定; }
    }

    公開クラスの引用
    {
        [JsonProperty("シンボル")]
        パブリック文字列シンボル { get; 設定; }
        [JsonProperty("質問")]
        public string Ask { get; 設定; }
        [JsonProperty("AverageDailyVolume")]
        公開文字列 AverageDailyVolume { get; 設定; }
    }
4

1 に答える 1

1

これが今役立つかどうかはわかりませんが、問題はjsonがオブジェクトモデルに準拠していないことです。結果のリストを含む Query オブジェクトを使用して Container オブジェクトに逆シリアル化するには、結果の json は次のようになります。

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

しかし、json は次のようになります。

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

引用」プロパティは、それを台無しにしているものです。したがって、これをマップするには、ソース json を変更するか、プロパティ「quote」を持つある種のカスタム リストを実装する必要があります。または、手動で逆シリアル化します。しかし、ネイティブにjsonはオブジェクトを次のようにexpextします

{
   ...Some object
} 

ではない:

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

コレクション内の場合。

于 2012-07-12T08:51:40.807 に答える