(c#)json 转换数组

我得到一串{"country": "China"},{"country": "English"},{"country": "Japan"},现在想把country合并为一个数组,里面包含China,English,Japan,请问后台代码该怎么操作?感谢!

备注一下:
我是.net2.0,C#,Json类库使用Json.Net。(不要前端的,前端的jquery很好解决)

第1个回答  2011-06-14
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字符串

本回答被提问者采纳