本周工作和学习的内容是.ashx格式的接口文件读取,读取.ashx文件接口也有很多种方法,我主要找到两种方法:第一种是通过读取.ashx接口中的内容,然后通过字符串的Replace方法替换方式把读到的内容进行分离,这种方法比较笨拙,但也是可以正确获取.ashx接口内容的方法;第二种是使用Newtonsoft.Json的JsonReader进行读取数据,同样适用Replace进行分离读取到的字符串。
第一种直接读取.ashx内容,使用替换方式分离内容:
private void button3_Click(object sender, EventArgs e)
{
string context = "{\r\n \"page\": 1,\r\n \"pages\": 1,\r\n \"total\": 1,\r\n \"rows\": [\r\n {\r\n \"id\": \"1001\",\r\n \"cell\": [\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\",\r\n \"5\",\r\n \"6\",\r\n \"7\",\r\n \"8\",\r\n \"9\",\r\n \"10\",\r\n \"11\"\r\n ]\r\n }\r\n ]\r\n}";
try
{
JObject Sobject = JObject.Parse(context); //要再头加上using Newtonsoft.Json.Linq;,没有改类库去下载Newtonsoft.Json.Linq.dll
string id = ""; //读取的id
JToken jToken = null;
foreach (JObject str in (JArray)Sobject["rows"])
{
id = str["id"].ToString().Trim('\"'); //读取id
jToken = str["cell"]; //读取cell
}
ss = jToken.ToString();
ss = ss.Replace("[\r\n \"", "").Replace("\"\r\n]", "").Replace("\",\r\n \"", "$"); //将context的内容替换为只有$分割cell中的各列
string[] ff = ss.Split('$'); //变为数组,然后去读取数组中的数据赋给你要接收后的实体类或者文本框
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
context = "";
}
}
第二种使用Newtonsoft.Json.Linq的JsonReader读取内容:
private void button3_Click(object sender, EventArgs e)
{
string context = "{\r\n \"page\": 1,\r\n \"pages\": 1,\r\n \"total\": 1,\r\n \"rows\": [\r\n {\r\n \"id\": \"1001\",\r\n \"cell\": [\r\n \"1\",\r\n \"2\",\r\n \"3\",\r\n \"4\",\r\n \"5\",\r\n \"6\",\r\n \"7\",\r\n \"8\",\r\n \"9\",\r\n \"10\",\r\n \"11\"\r\n ]\r\n }\r\n ]\r\n}";
try
{
TextReader txtReader = new StringReader(context.ToString()); //对context处理
JsonReader jsonReader = new JsonTextReader(txtReader); //使用JsonReader进行读取数据
string readResult = "";
while (jsonReader.Read())
{
if (jsonReader.TokenType == JsonToken.StartArray) //判断格式为JsonToken.StartArray的cell
{
while (jsonReader.Read()) //读取cell里面的内容
{
if (jsonReader.TokenType == JsonToken.String) //读取JsonToken.String的值
readResult += (string)jsonReader.Value + "$"; //使用$分隔读取的数据
}
}
}
string[] ff = ss.Split('$'); //变为数组,然后去读取数组中的数据赋给你要接收后的实体类或者文本框
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
context = "";
}
}
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。