2017-10-27 15 views
-2

問題があります。 固有のフォーマットを持たずにjsonファイルを解析するメソッドがあるかどうかを知りたいと思います。だから、それは異なる属性を持つかもしれませんが、それらのすべてが属性Statusを含んでいますが、それは倍にすることができます。異なるケーシングの同じキーを含むJSON辞書の解析

{ 
    "requestid": "1111", 
    "message": "db", 
    "status": "OK", 
    "data": [ 
    { 
     "Status": "OK", // this one I would to test first to read the other attributes 
     "fand": "", 
     "nalDate": "", 
     "price": 1230000, 
     "status": 2 
    } 
    ] 
} 
+0

をクラスのデータを作成してあなたは辞書にJsonの文字列を解析することができます。 – Seb

+0

私はあなたが尋ねていることを理解していない...たぶんあなたは 'JToken.Parse'(Newtonsoft Jsonライブラリ)を見て、そのようにツリーをナビゲートすることができますか? – RQDQ

+1

'Status'と' status'キーの両方を含んでいる*辞書*を解析できるかどうか尋ねていますか?私はそれが有効なJSONであることを確信していません –

答えて

1

https://www.newtonsoft.com/json

Data data = JsonConvert.DeserializeObject<Data>(json); 

とJSON内の興味深いデータを

+0

データに固有の構造がないという問題があります。 –

+1

私はそれを理解したので、このライブラリは素晴らしいです、それはまったく気にしません^^ –

+0

jsonデータの値がクラスの構造と一致しない場合、それ以前にテストしましたが、デシリアライゼーションは失敗します。 –

1

.NETのデファクト標準のJSONシリアライザはNewtonsoft.JsonHow to install)です。あなたが好きな順番でオブジェクトグラフとその上の仕事にJSONを解析することができます。

namespace ConsoleApp3 
{ 
    using System; 
    using Newtonsoft.Json.Linq; 

    class Program 
    { 
     static void Main() 
     { 
      var text = @"{ 
       'requestid': '1111', 
       'message': 'db', 
       'status': 'OK', 
       'data': [ 
       { 
        'Status': 'OK', // this one I would to test first to read the other attributes 
        'fand': '', 
        'nalDate': '', 
        'price': 1230000, 
        'status': 2 
       } 
       ] 
      }"; 

      var json = JObject.Parse(text); 

      Console.WriteLine(json.SelectToken("data[0].Status").Value<string>()); 
      Console.ReadLine(); 
     } 
    } 
} 
関連する問題