2016-05-22 7 views
0

これは私のJSONです:.NETでこのJSONの特定のデータを解析する方法は?

{ 
"coord": { 
    "lon": -0.13, 
    "lat": 51.51 
}, 
"weather": [{ 
    "id": 520, 
    "main": "Rain", 
    "description": "light intensity shower rain", 
    "icon": "09d" 
}], 
"base": "stations", 
"main": { 
    "temp": 289.42, 
    "pressure": 1008, 
    "humidity": 55, 
    "temp_min": 287.15, 
    "temp_max": 291.15 
}, 
"visibility": 10000, 
"wind": { 
    "speed": 4.1, 
    "deg": 340 
}, 
"rain": { 
    "1h": 4.32 
}, 
"clouds": { 
    "all": 40 
}, 
"dt": 1463937214, 
"sys": { 
    "type": 1, 
    "id": 5091, 
    "message": 0.0474, 
    "country": "GB", 
    "sunrise": 1463889474, 
    "sunset": 1463947050 
}, 
"id": 2643743, 
"name": "London", 
"cod": 200 
} 

私は天気予報のクラスにこれをデシリアライズしたいです。私はデータのこの部分だけに興味があります。

"main":{"temp":289.42,"pressure":1008,"humidity":55,"temp_min":287.15,"temp_max":291.15} 

だから私は誰かが私がここにDeserializeObjectを使用する方法をアドバイスしてもらえ

class weather 
{ 
var temp,pressure,humidity,.. 
} 

以下のようなクラスのものを作成したいと思いますか?

+0

ここからJSONを取得していますか、ファイルからそれを読み取っていますか? Webリクエストから取得しますか?これはWebApiやMVCアプリケーションのコンテキスト内にあるのですか? –

答えて

0

引用されたJSONレスポンスを返すサービスを提供している場合は、必要なデータのみを提供するようにレスポンスを編集することを強くお勧めします。これは、要求ごとのデータ/時間を削減するだけでなく、クライアント上で処理する方がはるかに効率的になります。しかし、これがオプションでない場合は、this linkを使用して、必要に応じてJSONレスポンスの特定の値を取得することができます。

しかし、JSONが非常に大きい場合を除き、特定の部分を取得するかオブジェクト全体を取得するかのパフォーマンスの差は重要ではないため、オブジェクト全体を単純に逆シリアル化して必要なデータを取得することもできます。

1

json.netを使用してください。 http://www.newtonsoft.com/

ここでは、必要な部分のみを逆シリアル化する方法を示します。基本的に、クラスには使用するプロパティのみが含まれている必要があり、json変数に一致する必要があります。

var definition = new { temp = "" }; 

var weatherReport = JsonConvert.DeserializeAnonymousType(yourString, definition); 
関連する問題