C#jsonコンテンツを巡り、DataTableに列として追加

10512 ワード

C#jsonコンテンツを巡り、DataTableに列として追加
コードを直接見て、くどくどしない!简単で分かりやすくて、あなたに役に立つことを望んで、もし助けがあれば、いいですね!
まずjson形式{「ProdSN」:「{SerialNumber}」「EqpID」:「{EqpID}」,“Parameter”:[{“ParaName”:“overallResult”,“ParaValue”:"{overallResult}"},{“ParaName”:“errCode”,“ParaValue”:"{errCode}"},{“ParaName”:“startTime”,“ParaValue”:"{startTime}"},{“ParaName”:“stopTime”,“ParaValue”:"{stopTime}"},{“ParaName”:“testerID”,“ParaValue”:"{testerID}"}]}
コード実装には参照が必要です:using Newtonsoft.Json.Linq;
string[] lines = null;
string Path = System.AppDomain.CurrentDomain.BaseDirectory + "\\CONFIGURATION_TABLE";
string strFullJosnPath = Path + "\\" + "Trackout_test.json";
 if (File.Exists(strFullJosnPath))
                    {
     
                        lines = File.ReadAllLines(strFullJosnPath, Encoding.UTF8);
                    }
 string strParaNamesReplace = lines[0];
 DataTable dtNewTemp = new DataTable();
DataColumn dc = null;
JObject jObject = JObject.Parse(strParaNamesReplace);
foreach (JProperty jProperty in jObject.Properties())
       {
     
         if (jProperty.Name.Contains("Parameter"))
           {
     
            JToken retDataJson = JToken.Parse(jProperty.Value.ToString());
              foreach (JToken item in retDataJson)//    
               {
     
                 String tmuid = item["ParaValue"].ToString();
                 dc = new DataColumn();
                 dc.ColumnName = replaceStr(tmuid);
                dtNewTemp.Columns.Add(dc);                             
               }
            }
          else
           {
     
             dc = new DataColumn();
             dc.ColumnName = replaceStr(jProperty.Value.ToString());
             dtNewTemp.Columns.Add(dc);
           }
	 }
// /// “{”,“}” /// /// /// private string replaceStr(string strRep) { if (!string.IsNullOrEmpty(strRep)&& strRep.Contains("{") && strRep.Contains("}")) { string str = strRep.Replace("{", "").Replace("}", ""); return str; } else return ""; }