2016-04-30 27 views
0

私は、このJSONファイルのキーの取得方法:JSON JArrayからの値のペア?

一方の部分はここにある私は、このリンクから一部のデータを抽出したいプロジェクト(http://www.eurogamer.net/ajax.php?action=json-comments&aid=1822104&start=0&limit=1000&filter=all&order=asc)に取り組んでいる:私はRegexを試みたが、見つかりませんでした[{"id":6044586,"u":"ubergine","uid":"472505","a":"2011\/community\/users\/4\/7\/2\/5\/0\/5\/user-472505-originalxoriginal-16-30-27.jpg","t":"3 weeks ago","k":"+16",**"p":"Prepare to Tri"**,"e":"","d":"","v":"unverified","gi":[],"s":"","mod":false,"total":"28"}]

任意の良い。次にJson.NETを使用して、JArrayを使用してデータを解析し、JTokenを使用しましたが、取得できませんでした。私はC#プログラミング言語を使用しています。 上記のpキーの太字の特定の値を入力しますか?

+0

JSONは無効です。 [jsonlint.com](http://jsonlint.com) – Utkanos

+1

どのようなプログラミング言語をお使いですか? –

+0

@Utkanos OPによって提供されるリンク上のjsonが有効です。 –

答えて

1

jsonプロパティにマップし、JsonConvert.DeserializeObject<>()を使用するクラスを作成する方がよい場合があります。

このlinqpadスクリプトを参照してください:ここ http://share.linqpad.net/7fpltw.linq

ソース(あなただけのVisual Studioに貼り付ける場合は、エラーが発生しますので、これはLinqPadスクリプトであることに注意):

void Main() 
{ 
string thejson = @"[{ 
    ""id"": 6044586, 
    ""u"": ""ubergine"", 
    ""uid"": ""472505"", 
    ""a"": ""2011\/community\/users\/4\/7\/2\/5\/0\/5\/user-472505-originalxoriginal-16-30-27.jpg"", 
    ""t"": ""4 weeks ago"", 
    ""k"": ""+16"", 
    ""p"": ""Prepare to Tri"", 
    ""e"": """", 
    ""d"": """", 
    ""v"": ""unverified"", 
    ""gi"": [], 
    ""s"": """", 
    ""mod"": false, 
    ""total"": ""28"" 
}, { 
    ""id"": 6044596, 
    ""u"": ""Fragtaster"", 
    ""uid"": ""828120"", 
    ""a"": ""2014\/community\/users\/8\/2\/8\/1\/2\/0\/user-828120-originalxoriginal-8-03-00.jpg"", 
    ""t"": ""4 weeks ago"", 
    ""k"": ""+44"", 
    ""p"": ""This [Dark Souls 3] is one of those cases where <strong>\""more of the same\""<\/strong> is a bloody damn good-thing.<br \/>\n<br \/>\n<img src=\""https:\/\/tse2.mm.bing.net\/th?id=OIP.M607bf0698ed2368b9f9cc9e4ea244c77H0&pid=15.1\"" \/>"", 
    ""e"": """", 
    ""d"": """", 
    ""v"": ""unverified"", 
    ""gi"": [], 
    ""s"": """", 
    ""mod"": false, 
    ""total"": ""66"" 
}]"; 

    var theobj = JsonConvert.DeserializeObject<List<JsonData>>(thejson); 
    theobj.ForEach(o => o.p.Dump()); 
} 

// Define other methods and classes here 
public class JsonData 
{ 
    public string id { get; set; } 
    public string u { get; set; } 
    public string uid { get; set; } 
    public string a { get; set; } 
    public string t { get; set; } 
    public string k { get; set; } 
    public string p { get; set; } 
    public string e { get; set; } 
    public string d { get; set; } 
    public string v { get; set; } 
    public string[] gi { get; set; } 
    public string s { get; set; } 
    public string mod { get; set; } 
    public string total { get; set; } 
} 
+0

このDump()メソッドとは何ですか?それは組み込みではありません。 –

+0

[LinqPadもの](https://www.linqpad.net/)です。代わりに 'Console.WriteLine()'を使うことができます。 – Crowcoder

0

私は上の答えを見つけました別のフォーラム。それは他人を助けるかもしれない。ここ は、コードの一部です:

JArray parsedArray = JArray.Parse(jsonString); 
     foreach (JObject parsedObject in parsedArray.Children<JObject>()) 
     { 
      foreach (JProperty parsedProperty in parsedObject.Properties()) 
      { 
       string propertyName = parsedProperty.Name; 
       if (propertyName.Equals("p")) 
       { 
        string propertyValue = (string)parsedProperty.Value; 
        Console.WriteLine("Name: {0}, Value: {1}", propertyName, propertyValue); 
       } 
      } 
     } 

そして、ここでは、完全なコードの答えのためのリンクです: https://social.msdn.microsoft.com/Forums/vstudio/en-US/df1d6c1b-349a-4f7f-9168-5bf01d320075/how-to-get-keyvalue-pair-from-json-jarray?forum=csharpgeneral

関連する問題