0

このJSON文字列(非常に大きな文字列の一部)をOracleサーバーから受け取ります(データは変更できません)が、これを逆シリアル化できないという面倒な問題が発生します。

 "rows":[
     {
        "1":"0000000001",
        "2":"SPARE00002",
        "5":"151.3354",
        "13":"100",
        "100000":"000000",
        "100001":"FFFFFF",
        "rowid":"0000000001"
     },

NewtonSoft.JSonを使用すると、クラスが作成されます。

public class Row
{
    public string __invalid_name__1 { get; set; }
    public string __invalid_name__2 { get; set; }
    public string __invalid_name__5 { get; set; }
    public string __invalid_name__13 { get; set; }
    public string __invalid_name__100000 { get; set; }
    public string __invalid_name__100001 { get; set; }
    public string rowid { get; set; }
}

そして、クラスに逆シリアル化しようとすると、素晴らしいエラーが発生します:式を評価できませんでした。

これを正しくフォーマットして、文字列NAMEがJSON文字列によって送信されたプロパティ名と同じであることをc#が認識できるようにする方法はありますか?

どんな助けでも大歓迎です!

編集!解決策を見つけました!無効な名前の文字列に[JsonProperty( "1")] ..etcを追加することで、問題は解決しました。素晴らしい!

4

1 に答える 1

0

無効なプロパティ名のそれぞれに、属性を追加します。[JsonProperty("1")]

于 2012-04-17T10:05:51.630 に答える