我对使用.NET System.JSON是陌生的。使用此示例应用程序尝试学习。
[DataContract]
internal class Person
{
[DataMember]
internal string name;
[DataMember]
internal int age;
}
String strData = "{ \"Person\": [{\"name\":\"TSR\",\"age\": 4 },{\"name\":\"KV\",\"age\":10}]}";
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(strData));
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Person));
Person jsonArray = (Person)ser.ReadObject(ms) as Person;
我正在通过提供示例输入来测试程序。请注意,输入中缺少最后一个Curley括号。我期望程序抛出某种异常,但事实并非如此。这是System.JSON的预期行为吗?
"{ \"Person\": [{\"name\":\"TSR\",\"age\": 4 },{\"name\":\"KV\",\"age\":10}]";
下面的输入在末尾有一个额外的斜杠。此输入也不会引发异常。
"{ \"Person\": [{\"name\":\"TSR\",\"age\": 4 },{\"name\":\"KV\",\"age\":10}]}}";
答案 0 :(得分:0)
告诉System.Json将您的字符串解析为JsonValue。如果有效,它将通过-如果无效,则应引发异常
try
{
var validJson = JsonValue.Parse(strData);
}
catch (FormatException e)
{
//Invalid Json Format
Console.WriteLine(e);
}
catch (Exception e)
{
//some other exception
}