(c#)json 转换数组
发布网友
发布时间:2022-05-02 00:49
我来回答
共1个回答
热心网友
时间:2022-04-23 04:54
1.定义个类来对应你的 json 数据:
[DataContract]
public class JsonResult<T>
{
[DataMember]
public string country{ get; set; }
}
2.解析结果:
JsonResultInfo<List<hzJsonCaseApply>> result = (JsonResultInfo<List<hzJsonCaseApply>>)client.ConvertByteDataToObject(你的json数据字节流);
3.相关的方法:
client是自定义的一个类,其下ConvertByteDataToObject方法为:
public object ConvertByteDataToObject(byte[] byteValue)
{
object result = null;
try
{
using (MemoryStream ms = new MemoryStream(byteValue))
{
System.Runtime.Serialization.Json.DataContractJsonSerializer ser = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(object));
result = ser.ReadObject(ms);
}
}
catch (Exception e)
{
result = Activator.CreateInstance(typeof(object));
try
{
System.Reflection.PropertyInfo pi = typeof(object).GetProperty("Message");
if (pi != null)
{
pi.SetValue(result, e.Message, null);
}
}
catch { }
}
return result;
}追问请问能够给个例子?这段代码有好多地方是没定义的,不知道具体怎么用。
感谢!
追答还有种方法更简单,函数定义如下:
public static T JSONToObject(string jsonText)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
try
{
return jss.Deserialize(jsonText);
}
catch (Exception ex)
{
throw new Exception("JSONHelper.JSONToObject(): " + ex.Message);
}
}
JavaScriptSerializer为:System.Web.Script.Serialization.JavaScriptSerializer,注意添加引用,我觉得这个更好。
使用的话:
JsonResult appResult =JSONToObject>(你的json字符串);
就行了。JsonResult、hzJsonApplicationInfo 是我定义的类,对应json字符串