[{
"header": {
"error": 0,
"vs": "37439903"
},
"data": {
"szxzsj": "1",
"hszczsj": "1",
"kcbjglz": [{
"flag_id": "mairu",
"info": "连续竞价阶段,若您输入的买入价格高于基准价格的102%,将被视为无效委托!"
}, {
"flag_id": "maichu",
"info": "连续竞价阶段,若您输入的卖出价格低于基准价格的98%,将被视为无效委托!"
}],
"zbjglz": [{
"flag_id": "mairu",
"info": "连续竞价阶段,若您输入的买入价格高于基准价格的102%或10个最小变动单位,将被视为无效委托!"
}, {
"flag_id": "maichu",
"info": "连续竞价阶段,若您输入的卖出价格低于基准价格的98%或10个最小变动单位,将被视为无效委托!"
}],
"hszbmrzt":{
"mrztzbz": "1.2",
"mrztzbd": "0.8"
},
"cybmrzt":{
"mrztzbz": "1.2",
"mrztzbd": "0.8"
},
"kcbmrzt":{
"mrztzbz": "1.2",
"mrztzbd": "0.8"
},
"fxmrzt":{
"mrztzbz": "1.05",
"mrztzbd": "0.95"
},
"smGrayscaleStage": {
"8657": {
"smGrayscaleStageValue": "3"
},
"8606": {
"smGrayscaleStageValue": "2"
},
"8624": {
"smGrayscaleStageValue": "3"
},
"8628": {
"smGrayscaleStageValue": "3"
},
"8635": {
"smGrayscaleStageValue": "2"
},
"8638": {
"smGrayscaleStageValue": "3",
"isShowDialog": "1",
"hitProbability":"100",
"hitSpecialRule":[]
},
"8646": {
"smGrayscaleStageValue": "3"
},
"8642": {
"smGrayscaleStageValue": "2"
}
},
"hszczfxywsj": "1",
"officialxzsj": "1"
}
}]
将上面json串转换为c#中的对象,c#中有一个比较好用的json库Newtonsoft.Json,在vs2022中工具->NuGet包管理器中搜索安装该库即可。
using Newtonsoft.Json;
using System.Collections.Generic;
public class KcbjglzItem
{
public string flag_id { get; set; }
public string info { get; set; }
}
public class ZbjglzItem
{
public string flag_id { get; set; }
public string info { get; set; }
}
public class Hszbmrzt
{
public string mrztzbz { get; set; }
public string mrztzbd { get; set; }
}
public class Cybmrzt
{
public string mrztzbz { get; set; }
public string mrztzbd { get; set; }
}
public class Kcbmrzt
{
public string mrztzbz { get; set; }
public string mrztzbd { get; set; }
}
public class Fxmrzt
{
public string mrztzbz { get; set; }
public string mrztzbd { get; set; }
}
public class SmGrayscaleStage
{
public string smGrayscaleStageValue { get; set; }
public string isShowDialog { get; set; }
public string hitProbability { get; set; }
public List<object> hitSpecialRule { get; set; }
}
public class Data
{
public string szxzsj { get; set; }
public string hszczsj { get; set; }
public List<KcbjglzItem> kcbjglz { get; set; }
public List<ZbjglzItem> zbjglz { get; set; }
public Hszbmrzt hszbmrzt { get; set; }
public Cybmrzt cybmrzt { get; set; }
public Kcbmrzt kcbmrzt { get; set; }
public Fxmrzt fxmrzt { get; set; }
public Dictionary<string, SmGrayscaleStage> smGrayscaleStage { get; set; }
public string hszczfxywsj { get; set; }
public string officialxzsj { get; set; }
}
public class Root
{
public Header header { get; set; }
public Data data { get; set; }
}
public class Header
{
public int error { get; set; }
public string vs { get; set; }
}
class Program
{
static void Main()
{
string jsonString = "[{\n\t\"header\": {\n\t\t\"error\": 0,\n\t\t\"vs\": \"37439903\"\n\t},\n\t\"data\": {\n\t\t\"szxzsj\": \"1\",\n\t\t\"hszczsj\": \"1\",\n\t\t\"kcbjglz\": [{\n\t\t \"flag_id\": \"mairu\",\n\t\t \"info\": \"连续竞价阶段,若您输入的买入价格高于基准价格的102%,将被视为无效委托!\"\n\t\t}, {\n\t\t \"flag_id\": \"maichu\",\n\t\t \"info\": \"连续竞价阶段,若您输入的卖出价格低于基准价格的98%,将被视为无效委托!\"\n\t\t}],\n\t\t\"zbjglz\": [{\n\t\t \"flag_id\": \"mairu\",\n\t\t \"info\": \"连续竞价阶段,若您输入的买入价格高于基准价格的102%或10个最小变动单位,将被视为无效委托!\"\n\t\t}, {\n\t\t \"flag_id\": \"maichu\",\n\t\t \"info\": \"连续竞价阶段,若您输入的卖出价格低于基准价格的98%或10个最小变动单位,将被视为无效委托!\"\n\t\t}],\n\t\t\"hszbmrzt\":{\n\t\t \"mrztzbz\": \"1.2\",\n\t\t \"mrztzbd\": \"0.8\"\n\t\t},\n\t\t\"cybmrzt\":{\n\t\t \"mrztzbz\": \"1.2\",\n\t\t \"mrztzbd\": \"0.8\"\n\t\t},\n\t\t\"kcbmrzt\":{\n\t\t \"mrztzbz\": \"1.2\",\n\t\t \"mrztzbd\": \"0.8\"\n\t\t},\n\t\t\"fxmrzt\":{\n\t\t \"mrztzbz\": \"1.05\",\n\t\t \"mrztzbd\": \"0.95\"\n\t\t},\n\t\t\"smGrayscaleStage\": {\n\t\t\t\t\"8657\": {\n\t\t\t\t\t\"smGrayscaleStageValue\": \"3\"\n\t\t\t\t},\n\t\t\t\t\"8606\": {\n\t\t\t\t\t\"smGrayscaleStageValue\": \"2\"\n\t\t\t\t},\n\t\t\t\t\"8624\": {\n\t\t\t\t\t\"smGrayscaleStageValue\": \"3\"\n\t\t\t\t},\n\t\t\t\t\"8628\": {\n\t\t\t\t\t\"smGrayscaleStageValue\": \"3\"\n\t\t\t\t},\n\t\t\t\t\"8635\": {\n\t\t\t\t\t\"smGrayscaleStageValue\": \"2\"\n\t\t\t\t},\n\t\t\t\t\"8638\": {\n\t\t\t\t\t\"smGrayscaleStageValue\": \"3\",\n\t\t\t\t\t\"isShowDialog\": \"1\",\n\t\t\t\t\t\"hitProbability\":\"100\",\n\t\t\t\t\t\"hitSpecialRule\":[]\n\t\t\t\t},\n\t\t\t\t\"8646\": {\n\t\t\t\t\t\"smGrayscaleStageValue\": \"3\"\n\t\t\t\t},\n\t\t\t\t\"8642\": {\n\t\t\t\t\t\"smGrayscaleStageValue\": \"2\"\n\t\t\t\t}\n\t\t\t},\n\t\t\"hszczfxywsj\": \"1\",\n\t\t\"officialxzsj\": \"1\"\n\t}\n}]";
List<Root> listData = JsonConvert.DeserializeObject<List<Root>>(jsonString);
}
}
使用DeserializeObject可以将json字符串反序列化为对象,SerializeObject可以将对象序列化为json字符串。