C# 中Json数据格式的使用及注意事项
一 、前言
工作中经常需要将检测数据或者测评数据以Json格式提供给MES或者记入文档中,由于之前对这种常用数据记录格式使用较少,常出现拼写及使用出错,下面将结合经验 分析并记录如下。
二、示例Json
-
json样例如下: { "Id": "1234568", "ServerName": "SCAN_COMPBARCD_SUBMIT", "WorkStation": "T30256", "MachineId": "hzdz-123456", "Data": { "Aufnr": "12345678", "CompBarcds": [{ "Compbarcds": "123456", "Matnr": "012345" }, { "Compbarcds": "123457", "Matnr": "012347" } ] } }
代码段展示了一个简单常用的Json数据,由 JObject 和JArray两种结构,相互结合而成,如果你看不出来可以借助网上的Json格式化助手来查看,Json的组成结构
可用的网站地址如下:
https://www.bejson.com/explore/index_new
https://www.json.cn/
以上网站可以验证Json数据 格式是否正确,也可分析正确的Json数据构成。
三、实现Json数据
首先 工程中需要引入:using Newtonsoft.Json.Linq; 名称空间
注意: 以下只是展示以上Json对应代码
private string GeJsonContent(string startTime, string endTime, string programName, string workMode, string eventCode, string eventMsg, string ip)
{
string product = string.Empty;
string[] programNameSplit = programName.Split('-');
if (programNameSplit.Count() > 0)
{
product = programNameSplit[0];
}
string ret = "";
// JObject 格式
JObject runStatusObj = new JObject();
runStatusObj["Id"] = "1234568";
runStatusObj["ServerName"] = "SCAN_COMPBARCD_SUBMIT";
runStatusObj["WorkStation"] = "T30256";
runStatusObj["MachineId"] = "hzdz-123456";
JObject dataObj = new JObject();
dataObj["Aufnr"] = "12345678";
JArray CompBarcdsJar = new JArray();
JObject barcdsObj = new JObject();
barcdsObj ["Compbarcds"] = "123456";
barcdsObj ["Matnr"] = "012345";
CompBarcdsJar.Add(barcdsObj );
JObject barcdsObj2 = new JObject();
barcdsObj2 ["Compbarcds"] = "123457";
barcdsObj2 ["Matnr"] = "012347";
CompBarcdsJar.Add(barcdsObj2 );
dataObj["CompBarcds"] = CompBarcdsJar ;
runStatusObj["Data"] = dataObj;
ret = runStatusObj.ToString();
return ret;
}
生成结果: