如何获取父节点的值作为字符串?

所以在上面的数据结构中,我想获得Aprilia Caponord 1200价值(在图中标出)。 我有对Aprilia (根节点)的Firebase引用,我可以获取所有键/值对数据。 这是我的代码 @override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot child : dataSnapshot.getChild()) { Map value = (Map) child.getValue(); String bike_price = value.get(“price”).toString(); String image_url = value.get(“image_url”).toString(); } } 很明显,我可以获得具有键/值关系的子节点的所有值。 但我无法专门获取父节点的名称。 那么如何以String格式获取父节点的值? 如果我打印child.getValue().toString() ,我得到JSON值,但我对解析JSON不感兴趣。 是否有任何特定的方法来获取父节点值? {Aprilia Caponord 1200={image_url=____________, price=18.35}.. }

不更改POJO的情况下,不区分大小写的JSON到POJO映射

有谁知道com.fasterxml.jackson.databind.ObjectMapper如何能够将JSON属性映射到POJO属性不区分大小写? JSON字符串: [{ “FIRSTNAME”: “约翰”, “LASTNAME”: “Doe的”, “DATEOFBIRTH”: “1980-07-16T18:25:00.000Z”}] POJO级: public class Person { private String firstName; private String lastName; private Date dateOfBirth; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } […]

单击JButton后关闭jFrame

我在NetBeans中设计了两个JFrame。 当我单击“规则”按钮(即放置在JFrame1上)时,它会打开第二个JFrame(但是JFrame2会打开JFrame1的窗口,这就是我不想要的)。 在第二个JFrame中有一个“关闭”按钮。 但是,当我单击此按钮时,我希望打开JFrame1并且它也正常工作,但JFrame2实际上没有关闭,JFrame1正在JFrame2上出现。 简而言之,主要forms是JFrame1。 当我点击JFrame1中的“规则”按钮时,它会在JFrame1上打开JFrame2,而在JFrame2中,当点击主窗体(即JFrame1)时,会有一个“关闭”按钮,但它会通过JFrame2启动。 场景是JFframe1 – > JFrame2 – > JFrame1 现在我的问题是在点击“规则”按钮后,应关闭JFrame1并在屏幕上显示JFrame2,反之亦然。

包com.sun.org.apache.xml.internal.security.utils.Base64不存在

我正在使用NetBeans 7.0.1和JDK 1.6 Update 24,并在导入包com.sun.org.apache.xml.internal.security.utils.Base64以编码密码哈希时: u.setPassword(Base64.encode(digest(password))); 但是在编译时,我收到以下错误: (omitted)\RegistrationController.java:8: package com.sun.org.apache.xml.internal.security.utils does not exist import com.sun.org.apache.xml.internal.security.utils.Base64; (omitted)\RegistrationController.java:94: cannot find symbol symbol : variable Base64 location: class RegistrationController u.setPassword(Base64.encode(digest(password))); 2 errors 我已经阅读了有关同一问题的其他几个问题,但所有问题都涉及不属于JDK的软件包,而这是( rt.jar )。 代码辅助工作在类型上,扩展jar显示源代码和二进制文件实际上也存在。 我已经尝试清理项目,重建它,将源文件复制到一个全新的Enterprise项目并以管理员身份运行NetBeans,但都无济于事。 关于如何解决这个问题的任何线索非常感谢! 谢谢!

Java Applet中的Apache FOP – 没有为数据找到ImagePreloader

我正在研究一个成熟商业产品的问题。 简而言之,我们使用Apache POI库的一部分来读取Word .DOC或.DOCX文件,并将其转换为XSL-FO,以便我们可以进行令牌替换。 然后,我们使用FOP(嵌入到Java程序中)将FO数据转换为PDF以进行打印。 问题是,所有这些都是在Internet Explorer中运行的Java applet内的客户端上完成的。 最初我们使用的FOP为0.93,效果相当不错。 但是,在生成PDF时无法利用DOC文件中的字体,并将所有内容映射到Times,其中一个客户不喜欢。 理论上可以通过添加某种字体度量数据来使其工作,但这可能需要对它可能遇到的每种字体进行相对复杂的定义,并且我们无法预测客户端在MS之外可能使用的字体。核心字体集。 为了解决这个问题,FOP升级到1.0,这增加了对从操作系统自动检测字体的支持。 这很有效,但我们注意到图像处理已停止工作,信头已消失。 似乎已经发生的事情是FOP内的图像加载器在0.93和0.95之间的某个点被重写,因此它不使用Jimi和JAI,而是使用ImageIO。 早期的实现工作正常,但新代码不喜欢作为applet运行。 图像嵌入在FO数据的URI中,因此我们得到如下错误:2014-09-30 17:00:10,607 ERROR [org.apache.fop.apps.FOUserAgent]图像不可用。 URI:data:image / jpeg; base64,iVBORw0KGgoAAAANSUhEUgAAALQAAABSCAIAAABysmn6AAA …… ggg ==。 原因:org.apache.xmlgraphics.image.loader.ImageException:不支持文件格式。 找不到数据的ImagePreloader:image / jpeg; base64,iVBORw0KGgoAAAANSUhEUgAAALQAAABSCAIAAABysmn6AAAA … 当运行测试工具时,会生成正确的输出,但是当在浏览器中作为applet运行时,我们会收到上述错误,这使我怀疑浏览器applet安全性会以某种方式阻塞ImageIO插件加载程序。 FOP转换的内容,即触发错误的位是: // Step 4: Setup JAXP using identity transformer TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(); // identity transformer transformer.transform(src, res); […]

Struts2:按钮中的方法属性不起作用

我在jsp中有一个表单。 有两个提交按钮:“搜索”和“添加新”按钮。 我已经为每个按钮设置了自己的方法属性。 在struts.xml中 /error.jsp /example/search.jsp /example/add.jsp 在EmployeeAction类中 public class EmployeeAction extends ActionSupport { private static final Logger logger = Logger.getLogger(EmployeeAction.class); @Override public String execute() throws Exception { logger.info(“Calling execute!”); return SUCCESS; } public String doSearch() throws Exception { logger.info(“Calling doSearch!”); return “search”; } public String doAddNew() throws Exception { logger.info(“Calling doAddNew!”); return “add”; } […]

hashCode()是如何用Java实现的

hashCode()是如何实现的? 我的假设是它使用对象内存位置作为运行哈希函数的初始数(种子)。 然而,这种情况并非如此。 我也看过Hash:它是如何在内部工作的? 但它没有回答我的问题。 是的我可以下载SDK,但在我这样做并查看代码之前,也许其他人已经了解它。 谢谢 :) 编辑:我知道它应该被覆盖等等,所以请尽量保持主题:)

如何用Java代码真正关闭JDialog?

我知道setVisible(false) , dispose() ,但它们无法真正关闭JDialog。 当我让另一个线程停止时,JDialog的线程仍在运行。 我不能使用System.exit(0) ,因为其他线程需要运行一段时间。 在代码之后,我最终在程序结束时通过System.exit(0)解决问题。 public class CsUpdateCtrl { /** * 升级service */ private CsUpdateService service; private CsUpdateCtrl() { this.service = (CsUpdateService) RmiUtil.getBean(RmiUtil.Service.csupdate); } private static final Logger log = Logger.getLogger(CsUpdateCtrl.class.getName()); public static void main(String[] args) throws IOException { LogUtil.read(); log.info(“进入自动更新系统”); CsUpdateCtrl ctrl = null; try { ctrl = new CsUpdateCtrl(); } […]

我可以覆盖使用java的HttpUrlConnection类的Host头吗?

我正在使用以下代码在java中打开http连接: URL url = new URL(“http://stackoverflow.com”); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoOutput(true); conn.setRequestMethod(“GET”); conn.setRequestProperty(“Host”, “Test:8080”); conn.getOutputStream(); 但是,调用conn.setRequestProperty(“Host”,“Test:8080”)似乎无效,无论我调用方法的顺序如何,主机都重置为目标服务器。 有没有办法在不使用其他库的情况下覆盖Host头? TIA Matt

取消装箱Null-Object会导致NullPointerException很长,很好吗?

这段代码抛出一个NullPointerException因为它被取消Long.longValue()原始类型和Long.longValue()被调用,对吧? 如果你有一个这样的片段,这很容易看出来: long value = (Long) null; 但是NullPointerException更难以进入这样一个更复杂的情况: long propertyValue = (Long) obj.getProperty(propertyModel.getName()); 因此Java-Compiler是否有可能使这个Exception更加舒适呢? 我更喜欢IllegalArgumentException ,其中包含“你正在尝试将null-Object转换为基本类型的消息,这不可能完成!” 这不是更合适吗? 你怎么看? 这甚至可以在运行时? 我们能够确定这个演员吗? 我还没有看过java字节码。 也许它可以用在解决方案中。 这个问题可以回答 :我想知道是否有可能实现这种行为!