我不允许在客户处导入新包裹。我只允许在获取看起来像JSON字符串的String
对象和返回之间的区域,我应该在List<String>
中返回它的某些部分。
我觉得非常有限,到目前为止,我无法继续。我最好的选择是使用Regex
对象,但也许有更平滑的解决方案? (我相信我也可以使用XDocument,LINQ,如果有任何帮助的话)。
建议?
答案 0 :(得分:1)
按照manual进行操作,您应该可以这样做。
您只需要导入System.Runtime.Serialization.dll(standerd .net dll)
编辑:
你有这个方法
public static T JsonDeserialize<T> (string jsonString)
如果你知道你会得到什么json,你可以创建这样的对象:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
所以你可以像这样使用它:
string jsonString = "{\"Age\":28,\"Name\":\"Tom\"}";
Person p = JsonHelper.JsonDeserialize<person>(jsonString);
EDIT2:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
static void Main(string[] args)
{
string json = "[{\"Age\":28,\"Name\":\"Tom\"},{\"Age\":18,\"Name\":\"Andes\"},{\"Age\":32,\"Name\":\"Lily\"}]";
List<Person> persons = new List<Person>(JsonHelper.JsonDeserialize<Person[]>(json));
}
编辑3: JsonHelper是一个实现默认设置的类。
/// <summary>
/// JSON Serialization and Deserialization Assistant Class
/// </summary>
public class JsonHelper
{
/// <summary>
/// JSON Serialization
/// </summary>
public static string JsonSerializer<T>(T t)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream();
ser.WriteObject(ms, t);
string jsonString = Encoding.UTF8.GetString(ms.ToArray());
ms.Close();
return jsonString;
}
/// <summary>
/// JSON Deserialization
/// </summary>
public static T JsonDeserialize<T>(string jsonString)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
T obj = (T)ser.ReadObject(ms);
return obj;
}
}