私はこのJSONを持っています:
{
"client_id": "26075235",
"client_version": "1.0.0",
"event": "app.uninstall",
"timestamp": 1478741247,
"data": {
"user_id": "62581379",
"site_id": "837771289247593785",
"platform_app_id": "26075235"
}
}
私はそれをJSON.NET JObjectにパースし、最初のレベルの値に正常にアクセスできます。 (文字列)RequestBody.SelectToken( "client_id")
「user_id」の値にアクセスするにはどうすればよいですかJPath式を使用して(またはJSON.NET JObjectの子オブジェクトにアクセスして)?これは機能しません:
(string)RequestBody.SelectToken("data[0].user_id")
jSONの「データ」部分を解析するためにこれを行うことはできません。
JObject RequestBodyData = JObject.Parse((string)RequestBody.SelectToken("data"));
コンパイラがRequestBody.SelectToken( "data")をオブジェクトとして認識しているようです(「オブジェクトを文字列に解析できません」というエラーが表示されます)
そして、JSONをJObject(またはJSONを処理するための他のタイプの汎用オブジェクト)に一般的に解析できる必要があるソリューションを開発しているので、元のJSONをカスタムC#オブジェクトに解析したくないので、比較的一貫した方法で解析できます。
JSONに配列がないため、SelectToken("data[0].user_id")
は機能しません。代わりにSelectToken("data.user_id")
を使用してください。