C# 解析xml和Json字符串
来源:互联网 发布:免费虚拟演播室软件 编辑:程序博客网 时间:2024/06/05 15:30
1. 解析xml文件
例如:XML 数据格式如下:
<RelatedDataItem>
<DataItem key="1">
<DataService Value=""/>
<Method Value=""/>
<DataSetID Value=""/>
<ContentType Value=""/>
</DataItem>
<DataItem key="2">
<DataService Value=""/>
<Method Value=""/>
<DataSetID Value=""/>
<ContentType Value=""/>
</DataItem>
</RelatedDataItem>
用C#代码解析xml字符串数据,先通过数据服务读取到xml字符串,然后通过以下代码解析
public void readXML(string xmlContent)
{
if (xmlContent.StartsWith("<RelatedDataItem"))
{
//通过得到的xml字符串转换成xml格式,然后进行解析
XDocument categoriesXML = XDocument.Load(XmlReader.Create(new StringReader(xmlContent)));
XElement datas = categoriesXML.Element("RelatedDataItem");
foreach (XElement WellElement in datas.Elements())
{
if (WellElement.Name == "DataItem")
{
string wellLogType = WellElement.Attribute("key").Value;
string dataService = WellElement.Element("DataService").Attribute("Value").Value;
string method = WellElement.Element("Method").Attribute("Value").Value;
string dataSetID = WellElement.Element("DataSetID").Attribute("Value").Value;
string contentType = WellElement.Element("ContentType").Attribute("Value").Value;
}
}
}
else
{
throw new exceptio("xml数据格式不正确");
}
}
2. 解析json字符串
例如: Json数据格式如下
"point1": [
{
"ptId": "1",
"X": "22",
"Y": "22",
"Z": "22"
},
{
"ptId": "2",
"X": "33",
"Y": "33",
"Z": "33"
},
{
"ptId": "3",
"X": "44",
"Y": "44",
"Z": "44"
},
{
"ptId": "4",
"X": "55",
"Y": "55",
"Z": "55
}
],
"point2": [
{
"ptId": "22",
"X": "333",
"Y": "333",
"Z": "33"3
},
{
"ptId": "33",
"X": "444",
"Y": "444",
"Z": "444"
},
{
"ptId": "44",
"X": "555",
"Y": "555",
"Z": "555"
}
]
用C#代码解析Json字符串。通过服务获取到json数据的字符串,然后进行解析
首先得引入第三方的解析JSON的库(也可以用vs自带的解析JSON的库)
第三方库如下:
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;
using Newtonsoft.Json.Linq;
public void test(ScriptObject e)
{
if (e == null)
return;
for (int pointCount= 0; pointCount>= 0; pointCount++)
{
ScriptObject point= (ScriptObject)e.GetProperty("Line" + (point+ 1)); //读取一个点
if (point== null)
break;
for (int i = 0; i >= 0; i++) //读取点中的每个元素
{
ScriptObject tmpPoint= (ScriptObject)point.GetProperty(i);
if (tmpPoint== null || tmpPoint.GetProperty("X").ToString().Trim().Length == 0 || tmpPoint.GetProperty("Y").ToString().Trim().Length == 0)
break;
stirng tmpID = (string)tmpPoint.GetProperty("ptId");
float X = float.Parse((tmpPoint.GetProperty("X").ToString()));
float Y = float.Parse((tmpPoint.GetProperty("Y").ToString()));
float Z = float.Parse((tmpPoint.GetProperty("Z").ToString()));
}
}
}
利用 VS 自带的JSON解析库进行解析,大概代码如下
引入库
using System.Json;
public void test(string jsonString)
{
JsonObject jo = (JsonObject)JsonObject.Parse(jsonString);
JsonArray tmpObj = jo["point1"];
object objId = tmpObj["ptId"];
object objX = tmpObj["X"];
object objY = tmpObj["Y"];
object objZ = tmpObj["Z"];
}
- C# 解析xml和Json字符串
- C# 解析JSON字符串
- C#解析XML字符串
- C#解析XML字符串
- xml和json解析
- json和xml解析
- XML和JSON解析
- json和xml解析
- json和xml解析
- JSON和XML解析
- XML和JSon解析
- XML和json解析
- JSON和XML解析
- xml和json解析
- XML解析和JSON
- JSON 和xml解析
- C#解析xml/json/excel
- JSON解析和XML解析
- 我的Python学习(二)——文件夹扫描
- 如何用C++实现一个LRU Cache(转载)
- My college life
- 关于C语言的一个小程序
- HDU 2509 Be the Winner 尼姆博弈
- C# 解析xml和Json字符串
- C语言struct内存占用问题
- java获得项目绝对路径
- TQ2440驱动-hello world 模块
- c .
- red hat 下如何关闭系统报警声
- 好玩的舞动排序算法
- tomcat与apache
- osgViewer销毁bug