1、json解析,使用Newtonsoft.json进行json的转换,主要是,从接口读取json字符串,将json字符串转换成实体类,将json字符串发送到对应的接口地址;
class Json_Operation
{
//读取数据并转换成实体类;
public static object Read_Json(string result, object o)
{
try
{
if (result == null)
return null;
JsonSerializer serializer = new JsonSerializer();
StringReader sr = new StringReader(result);
o = serializer.Deserialize(new JsonTextReader(sr), o.GetType());
}
catch (Exception exc)
{
LogHelper.loghelper.Instance.WriteLog(exc.GetType(), exc.ToString());
}
return o;
}
public static object Read_jsonArrat(string result)
{
try
{
var statusReportInfo = JsonConvert.DeserializeObject<List<StatusReportInfo>>(result);
return statusReportInfo;
}
catch (Exception exc)
{
LogHelper.loghelper.Instance.WriteLog(exc.GetType(), exc.ToString());
return null;
}
}
//将实体类转成字符串
public static string Write_Json(object o)
{
JsonSerializer serializer = new JsonSerializer();
StringWriter sw = new StringWriter();
try
{
serializer.Serialize(new JsonTextWriter(sw), o);
}
catch (Exception exc)
{
LogHelper.loghelper.Instance.WriteLog(exc.GetType(), exc.ToString());
}
return sw.GetStringBuilder().ToString();
}
//将json数据发送到对应接口地址
public static string PostJsonData(string url, string data)
{
try
{
HttpWebRequest webRequest1 = (HttpWebRequest) FileWebRequest.Create(url);
webRequest1.Proxy = null;
webRequest1.Method = "POST";
webRequest1.ContentType = "Application/json";
byte[] bs = Encoding.UTF8.GetBytes(data);
using (Stream reqStream = webRequest1.GetRequestStream())
{
reqStream.Write(bs, 0, bs.Length);
reqStream.Close();
}
string responseString = null;
using (HttpWebResponse response = webRequest1.GetResponse() as HttpWebResponse)
{
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
responseString = reader.ReadToEnd();
reader.Close();
}
return responseString;
}
catch (WebException webException)
{
LogHelper.loghelper.Instance.WriteLog(webException.GetType(),"客户端无法连接网络");
return null;
}
catch (Exception exc)
{
LogHelper.loghelper.Instance.WriteLog(exc.GetType(), exc+":"+data);
return null;
}
}
public static string GetJsonData(string url, string data)
{
try
{
string outUrl = url + data;
HttpWebRequest webRequest1 = (HttpWebRequest)FileWebRequest.Create(outUrl);
webRequest1.Method = "GET";
HttpWebResponse response2 = (HttpWebResponse)webRequest1.GetResponse();
StreamReader sr2 = new StreamReader(response2.GetResponseStream(), Encoding.GetEncoding("utf-8"));
string responseString = sr2.ReadToEnd();
return responseString;
}
catch (Exception exc)
{
LogHelper.loghelper.Instance.WriteLog(exc.GetType(), exc.ToString());
return null;
}
}
}