对应于.net中的Newtonsoft.Json.JsonConvert.SerializeObject(Object source,Newtonsoft.Json.JsonSerializerSettings())的java代码?
我在.net中有一个代码,将请求序列化为json格式……代码是这样的。
var ops = new Newtonsoft.Json.JsonSerializerSettings(); ops.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore; ops.MissingMemberHandling = Newtonsoft.Json.MissingMemberHandling.Ignore; ops.DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Ignore; ops.Converters.Add(new Newtonsoft.Json.Converters.JavaScriptDateTimeConverter()); String strSO = Newtonsoft.Json.JsonConvert.SerializeObject(source, bIndent ? Newtonsoft.Json.Formatting.Indented : Newtonsoft.Json.Formatting.None, ops);
我尝试了与此部分对应的java代码,但它不起作用。
根据我的理解,Newtonsoft序列化程序获取一个带有成员变量的对象,并输出一个表示该对象的json字符串。
所以你可以这样做:
Product product = new Product(); product.Name = "Apple"; product.Expiry = new DateTime(2008, 12, 28); product.Price = 3.99M; product.Sizes = new string[] { "Small", "Medium", "Large" }; string output = JsonConvert.SerializeObject(product);
你会得到一个输出字符串,如:
{"Name": "Apple", "Expiry": "\/Date(1230375600000+1300)\/", "Price": 3.99, "Sizes": ["Small", "Medium", "Large"] }
现在坏消息是您正在使用的BlackBerry库不使用reflection来检查它序列化的对象的结构。 它是格式化程序而不是序列化程序。
好消息是它很容易使用。 文档在这里:
http://www.blackberry.com/developers/docs/6.0.0api/org/json/me/package-summary.html
简而言之,要编写如上所述的对象,您可以执行以下操作:
myString = new JSONStringer() .object() .key("Name") .value("Apple") .key("Expiry") .value("Date("+myDate.getTime()+")") .endObject() .toString();
..等等。 请注意,您要逐个元素构造JSON结构元素,而不是让JSON库假定您的对象是您希望输出的数据的确切结构。
希望这会让你知道如何继续。
如果您的问题是“有没有人知道Java等效于Newtonsoft.Json for .NET以便以JSON格式进行序列化?”
查看http://json.org的底部