如何解析JSON文件?

简单的情况 – 读一个json文件 发现所有键值对 比较键值对 我试过gson,来自json.org的软件包,但似乎无法与之相提并论。 有人可以在Java中提供一个关于如何获取文件的清晰样本,阅读它,最后使用json objec我可以从中获取键/值对。 考虑一下: private void runThroughJson(JsonObject jsonObject) { for (final Entry entry : jsonObject.entrySet()) { final String key = entry.getKey(); final JsonElement value = entry.getValue(); System.out.println(key + ” – ” + value); if (value.isJsonObject()) { runThroughJson(value.getAsJsonObject()); } else { int ix = value.getAsString().indexOf(‘[‘); int ig = value.getAsString().lastIndexOf(‘]’); System.out.println(ix); System.out.println(ig); […]

寻找表达式评估器

我正在寻找一个简单条件表达式的求值器。 表达式应包括变量(只读),字符串,数字和一些基本运算符。 例如这样的表达式: ${a} == “Peter” && ( ${b} == null || ${c} > 10 ) 到目前为止,我实现了一个相当“神奇”的解析器,它返回一个我可以评估的AST,但我无法相信我是第一个解决这个问题的人。 我可以使用哪些现有代码?

在Java中获取数据库元数据的最简单方法?

我熟悉java.sql.DatabaseMetaData接口,但我觉得它很笨重。 例如,为了找出表名,您必须使用众所周知的文字作为列名来调用getTables并循环返回返回的ResultSet 。 有没有更简单的方法来获取数据库元数据?

hibernate / webapp上下文中的对象相等

你如何处理由hibernate管理的java对象的对象相等性? 在“hibernate in action”一书中,他们说人们应该支持商业密钥而不是代理密钥。 大多数时候,我没有业务密钥。 想一想映射到一个人的地址。 地址保存在Set中并显示在Wicket RefreshingView中(使用ReuseIfEquals策略)。 我可以使用代理id或使用equals()和hashCode()函数中的所有字段。 问题是那些字段在生命周期内对象变化。 要么是因为用户输入了一些数据,要么由于在OSIV(在视图中打开会话)filter内调用JPA merge()而导致id发生变化。 我对equals()和hashCode()契约的理解是那些在对象的生命周期内不应该改变的。 到目前为止我尝试了什么: equals()基于使用数据库id的hashCode()(如果id为null,则为super.hashCode())。 问题:新地址以null id开头,但在附加到某人时获得id,并且此人在osiv-filter中合并()(重新附加)。 首次调用hashCode()时,延迟计算哈希码,并使哈希码成为@Transitional。 不起作用,因为merge()返回一个新对象,并且不会复制哈希码。 我需要的是在我认为在对象创建期间分配的ID。 这里有什么选择? 我不想引入一些额外的持久属性。 有没有办法明确告诉JPA为对象分配ID? 问候

关闭钩子在Eclipse中不起作用

我添加了一个关闭钩子 : Runtime.getRuntime().addShutdownHook(myShutdownHook); 它通常工作正常,但是当我单击Eclipse中的红色停止按钮时却没有。 有没有办法在Eclipse中调用关闭钩子?

Java:静态字段在内存中的位置?

如果我们将对象存储在对象的静态字段中,JVM如何为它分配内存? 它是否存在于“隐含”(不确定我是否正在使用正确的单词)类对象中? 静态字段与对象字段有何不同?

如何在Java中转换UTC和本地时区

我对Java中的时区感到好奇。 我希望从设备获得UTC时间(以毫秒为单位)并发送到服务器。 当服务器向用户显示时间时,服务器会将其转换为本地时区。 我的系统中的时区是澳大利亚/悉尼(UTC + 11:00),当我测试时区时,我得到了以下结果: int year = 2014; int month = 0; int date = 14; int hourOfDay = 11; int minute = 12; int second = 0; Calendar c1 = Calendar.getInstance(); c1.set(year, month, date, hourOfDay, minute, second); SimpleDateFormat sdf = new SimpleDateFormat(“dd/MM/yyyy HH:mm:ss z”); System.out.println(sdf.format(c1.getTime())); Calendar c2 = Calendar.getInstance(TimeZone.getTimeZone(“UTC”)); c2.set(year, month, date, […]

如何使用XStream将对象列表转换为XML文档

如何使用XStream将对象列表转换为XML文档? 以及如何将其反序列化? 这是我的xml Guilherme 10 address,address,address,address, Guilherme 10 address,address,address,address, Person bean包含3个字段如何使用自定义转换器将其转换回Bean List?

Apache poi日期格式

嗨我正在阅读csv文件,并在01-01-2011获取日期,但我希望它在2011年1月1日格式,当我使用apache poi库编写.xlsx文件。 我的代码是 XSSFDataFormat df = workBook.createDataFormat(); cs.setDataFormat(df.getFormat(“dd-MMM-yy”)); 但它不适合我。 我在哪里做错了。

使用Apache POI API将xlsx转换为csv

我试图将.xlsx文件转换为.csv ,转换正在发生,但数据格式不正确。 请在下面找到代码,并建议更改代码。 在这里,我试图读取一个.xlsx文件并将其写入csv文件,即将xlsx转换为csv但是我没有以正确的格式获取.csv文件所有数据都显示在一个单独但它必须在Excel中显示为行。 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Iterator; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class XlsxtoCSV { static void xlsx(File inputFile, File outputFile) { // For storing data into CSV files StringBuffer data = new StringBuffer(); try { FileOutputStream fos = new FileOutputStream(outputFile); // Get the workbook object […]