2017-10-06 3 views
-1

私の目標は、このURLでJSONデータからデータ値を取得することです: http://someeu.altinget.dk/json.php?q=0&d=24&s=0&src=fb&g=1&l=200これらの可変フィールドはなぜjsonの解析タスクで自動的にNULL値になるのですか?

私はsomeDataが呼ばれるオブジェクトにJSONデータを持って、データを解析ループを作成してのceratin部品を書き込もうとしていますjsonデータを出力します。

フィールド変数のフィールドは、フィールドのフィールドの1つから値を割り当てたり、フィールドのフィールド値の1つを値と比較したりするたびに常に即座にNullになります。

この問題を解決するにはどうすればよいですか?フィールドは配列で、SoMedataはオブジェクトです。

using altinget.code; 
using System; 
using System.Web.UI; 
using Altinget.Extensions; 
using Newtonsoft.Json; 
using System.Net; 



namespace Altinget7.Controls 
{ 
public partial class SoMeDebateBox : BaseControl 
{ 
    public string titleTooltip = "Ukendt indtil videre"; 
    public static string link = "http://someeu.altinget.dk/json.php?q=0&d=24&s=0&src=fb&g=1&l=200"; 
    public string title = "Skal hentes fra resourcer"; 



    protected void Page_Load(object sender, EventArgs e) 
    { 
     //SoMetextOut.Text = "<link rel = \"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css\">"; 
     Page.Trace.Write("Render Time", "DebateBox Start"); 
     var web = new WebClient(); 
     var output = web.DownloadString(link); 
     dynamic SoMedata = JsonConvert.DeserializeObject<dynamic>(output);   
     dynamic contentData; 
     dynamic checkvar;   
     SoMetextOut.Text = " <h3> Danske EU - parlamentarikere på Facebook</h3>"; 
     foreach (var item in SoMedata) 
     {    
      if (item.Name == "content") 
      {     
       contentData = item.First; 
       foreach (var field in contentData) 
       { 
        checkvar = contentData.First; 
        checkvar = field; 
        checkvar = field.First; 
        if (field.First.Name == "author_full_name") 
        { 
         SoMetextOut.Text += " field.value"; 
        } 
       } 

       SoMetextOut.Text += "<li>" + SoMedata.status.ToString() + "</li>"; 
      } 
     } 

     SoMetextOut.Text = " <h3> Danske EU - parlamentarikere på Facebook</h3>"; 
     SoMetextOut.Text += " <h6>Indlæg fra de seneste 24 timer sorteret efter flest interaktioner</h6>"; 
     SoMetextOut.Text += "<div class=\"card mt-1 w-100\" style=\"background-color:#FFFFFF;box-shadow: 0px 4px 8px 0px rgba(0.75,0.75,0.75,0.75)\">"; //background-color:#d7bde2; 
     SoMetextOut.Text += "<div class=\"card-block\" style=\"padding: 10px 10px 10px 10px\">"; 
     SoMetextOut.Text += "<ul>"; 
     SoMetextOut.Text += "<li>" + SoMedata.status.ToString() + "</li>"; 
     SoMetextOut.Text += "<li>" + SoMedata.template.ToString() + "</li>"; 
     SoMetextOut.Text += "<li>" + SoMedata.id.ToString() + "</li>"; 
     SoMetextOut.Text += "<li>" + SoMedata.title.ToString() + "</li>"; 
     SoMetextOut.Text += "</ul> </div> </div>"; 
     //lit.Text = String.Format("<div class=""{1}"">{0}</div>", InnerText, CssClass) 
     // Newtonsoft.Json.Linq.JProperty jProperty = new Newtonsoft.Json.Linq.JProperty(field); 
    } 
} 

}

+0

正確にあなたはJSONから読み取るしようとしていますか? – Xiaoy312

+0

このURLから:http://someeu.altinget.dk/json.php?q=0&d=24&s=0&src=fb&g=1&l=200私は "title"、 "subtitle"、 "author_full_name"、 "post_message" "と" post_link "を入力します。 –

答えて

0

あなたはこのことから、あなたのコードをベースにすることができます

var data = JObject.Parse(json); 

var status = (string)data["status"]; 
// ... 

foreach(var content in data["content"]) 
{ 
    var fullname = (string)content["author_full_name"]; 
    // ... 
} 
+0

私はすでにそれをしました。問題は、内部でプロパティ変数を持つオブジェクトを取得して、それをより複雑にすることです。 –

関連する問題