Json的大小写问题
[TestClass]
public class JsonTest
{
internal class JsonClass
{
[JsonProperty("errcode")]
public int ErrCode { get; set; }
[JsonProperty("errmsg")]
public string ErrMsg { get; set; }
}
[TestMethod]
public void TestMethod1()
{
var js = new JavaScriptSerializer();
var jsonCls1 = new JsonClass { ErrCode = 0, ErrMsg = "ok" };
var jsonStr1 = js.Serialize(jsonCls1);
var jsonStr2 = JsonConvert.SerializeObject(jsonCls1);
//生成的JSON后面不会有个逗号
//JsonProperty对JavaScriptSerializer无效
Assert.AreEqual(jsonStr1, "{\"ErrCode\":0,\"ErrMsg\":\"ok\"}");
Assert.AreNotEqual(jsonStr1, "{\"ErrCode\":0,\"ErrMsg\":\"ok\",}");
Assert.AreEqual(jsonStr2, "{\"errcode\":0,\"errmsg\":\"ok\"}");
Assert.AreNotEqual(jsonStr2, "{\"errcode\":0,\"errmsg\":\"ok\",}");
const string jsonStr = "{\"errcode\":0,\"errmsg\":\"ok\",}";
var jsonCls = JsonConvert.DeserializeObject<JsonClass>(jsonStr);
Assert.IsNotNull(jsonCls);
Assert.AreEqual(jsonCls.ErrCode,0);
try
{
jsonCls = js.Deserialize<JsonClass>(jsonStr);
Assert.IsNotNull(jsonCls);
}
catch (ArgumentException)
{
Assert.Fail("无效的 JSON 基元");
}
}
}