(c#)json 转换数组
我得到一串{"country":"China"},{"country":"English"},{"country":"Japan"},现在想把country合并为一个数组...
我得到一串{"country": "China"},{"country": "English"},{"country": "Japan"},现在想把country合并为一个数组,里面包含China,English,Japan,请问后台代码该怎么操作?感谢!
备注一下:
我是.net2.0,C#,Json类库使用Json.Net。(不要前端的,前端的jquery很好解决) 展开
备注一下:
我是.net2.0,C#,Json类库使用Json.Net。(不要前端的,前端的jquery很好解决) 展开
展开全部
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;
}
[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字符串
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询