当前位置: 首页 > 面试题库 >

java代码对应于.net中的Newtonsoft.Json.JsonConvert.SerializeObject(Object source,Newtonsoft.Json.JsonSerializerSettings())?

蓝苗宣
2023-03-14
问题内容

我在.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库不使用反射来检查其序列化的对象的结构。它是一个格式化程序,而不是序列化程序。

好消息是它非常易于使用。文档在这里:

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库假设您的对象是您要输出的数据的确切结构。

希望这会给您一些有关如何进行的想法。



 类似资料:
  • 问题内容: 我在Visual Basic中有一个加密的字符串。NET 2008,加密和解密的功能如下: 例如,使用此功能加密的单词“ android”会给我结果“ B3xogi / Qfsc =“ 现在我需要使用相同的密钥“ key12345”从java解密字符串“ B3xogi / Qfsc =“,其结果应为“ android” …任何人都知道该怎么做? 提前致谢。 问题答案: 使用Apache

  • 下面是我的java代码,它是示例WebService的一部分: 可选(错误域=nsurlerrordomain代码=-1017“不能解析响应”userinfo={nserrorfailingurlstringkey=http://192.168.10.229:8080/jerseydemos/rest/employees,_kcfstreamerrorcodekey=-1,nserrorfaili

  • 问题内容: 我不是在寻找像Web服务这样的常见答案。我正在寻找在同一台机器上运行的轻量级解决方案。 编辑:我正在寻找Java中调用.NET方法的方法 问题答案: 我相信Java可以与COM对话,.NET可以公开COM接口。因此,这可能是一种非常轻巧的解决方案,不需要任何第三方。还可以选择使用套接字在程序之间进行通信,这不需要在计算机上安装大量的IIS实例。

  • 问题内容: 在允许用户提交自己的代码以由服务器运行的模拟服务器环境中,将任何用户提交的代码在沙箱中运行显然是有利的,这与浏览器中的Applet不同。我希望能够利用JVM本身,而不是添加另一个VM层来隔离这些提交的组件。 使用现有的Java沙箱模型似乎可以实现这种限制,但是是否有一种动态的方法可以仅对正在运行的应用程序的用户提交的部分启用此限制? 问题答案: 在自己的线程中运行不受信任的代码。例如,

  • 问题内容: 诸如Rails和Django之类的Web框架内置了对“子弹”的支持,“子弹”用于生成可读且对SEO友好的URL: Rails中的子弹 团状串典型地只包含的字符,并且可因此在不URL转义(认为“富%20巴”)编写的。 我在寻找一个Java蛞蝓函数给出任何有效的Unicode字符串将返回蛞蝓表示(,和)。 一个普通的子弹函数可能类似于: 但是,此实现无法处理国际化和重音符号(> )。解决此

  • 问题内容: 我正在尝试将Java应用程序分发给OS X用户。我不使用Mac商店-可以通过我自己的网站进行分发。无论我如何尝试,OS X的Gatekeeper都会拒绝该应用程序。 这是我的方法: (1)像往常一样构建应用程序,获取一个JAR文件 (2)按此处所述使用:https : //docs.oracle.com/javase/7/docs/technotes/guides/jweb/packa