2016-04-18 14 views
0

;私はNewtonsoft.Json(4.0.8.0)の古いバージョンを使用しています。プロパティ名に無効な文字を含むJSONを変換します。

私はWebサーバーアプリケーション用の.NETクライアントを作成しようとしています。 json構造から着信するすべてのパケットを.NETオブジェクトに変換するには、組み込み関数JToken.ToObjectとともにJSONシリアライザを使用します。 これは、対象となる.netクラスが、着信jsonデータと正確に名前が付けられた必要な属性を持つことを必要とします。

今私は、C#(私が思うと思う)の範囲に無効なプロパティ名を含むデータパケットを発見しました。 このように見えます。

"12345":{

"Name1/Part2": {} 
"Name2/Part2": {} 
"Name3/Part2": {} 
"Name4/Part2": {} 
"Name5/Part2": {} 

}

等しい.NETコードは、あろう。

class DataPacket { 
    public DummyObject 12345 {get; set;} 


    public class DummyObject { 
    public object Name1/Part2 {get; set} 
    public object Name2/Part2 {get; set} 
    public object Name3/Part2 {get; set} 
    public object Name4/Part2 {get; set} 
    public object Name5/Part2 {get; set} 
    } 
} 

ここで、すべてのプロパティ名が不正です( '番号で始まる'、 '不正な文字 - > /')。

メジャー4バージョンのNewtonsoftでこの問題をどのように解決できるか考えてみましょうか?私はあなたのような最初の何かのためになるようjsonproperty属性を使用することができると信じて

感謝

+0

を持って変換する必要があることを行いますJsonProperty属性を使用して、ウィットクラスのpropにマッピングされるjsonのプロップ名を指定します。 '[JsonProperty(JSONの名前)]' – Plutonix

+0

こんにちはPlutonix、これはとてもうまくいった。どうもありがとうございました! – user3411789

+0

[不正なC#識別子を引き起こすJSON文字列を解析するにはどうすればいいですか?](https://stackoverflow.com/questions/24536533/how-can-i-parse-a-json-string-that-would-cause - illegal-c-sharp-identifiers/24536739#24536739)。 – dbc

答えて

1

class DataPacket{ 
        [JSONProperty(PropertyName="1234")] 
        public DummyObject OneTwoThreeFour {get;set;}//or whatever you want to name. 
       } 

は、各JSONプロパティのあなたはそれが違法名

関連する問題