Java 从JSONObject读取值的更好方法

Java 从JSONObject读取值的更好方法,java,json,performance,Java,Json,Performance,请告诉从JSONObject读取值的更好方法: // #1 String offerSubCategory = offeringJson.getJSONObject("offeringSubCategory").getString("code"); // #2 String offerSubCategory = offeringJson.getJSONObject(Constants.offeringSubCategory).getString(Constants.code); 我需要阅读

请告诉从
JSONObject
读取值的更好方法:

// #1
String offerSubCategory = offeringJson.getJSONObject("offeringSubCategory").getString("code");  
// #2
String offerSubCategory = offeringJson.getJSONObject(Constants.offeringSubCategory).getString(Constants.code);

我需要阅读
JSONObject
您能建议哪一个更好吗。

如果您的JSON解析代码在单个Java文件中进行了良好的模块化,那么选项1可能会提供更短的代码,可读性稍好一些

但是,如果这些代码分散在你的应用程序中,那么无论如何,选择选项2。否则,任何数据方案重构都可能是一场噩梦;)

性能。这真的没关系。Java编译器将(非常!)内联选项#2中的常量,从而产生与#1相同的字节码

多个值。如果您真的打算从同一个
JSONObject
读取多个值,我建议您像这样分解代码:

JSONObject json = offeringJson.getJSONObject("offeringSubCategory");
String xxx = json.getString("xxx");
String yyy = json.getString("yyy");  
...

在这里没有更好的方法,使用
常量
类与否取决于品味,您也可以在当前类中使用一些常规常量,我将使用第二个。。如果你能在整个项目中保持键的一致性,那么重构就更容易了使用下面的一个键会有性能问题吗??StringofferSubCategory=offeringJson.getJSONObject(“offeringSubCategor”).getString(“代码”);好啊但我的问题是“xxx”这个值从多个类中读取,在这种情况下哪个更好String xxx=json.getString(Constant.xxx);(或)字符串xxx=json.getString(“xxx”)。类常量{public static final String xxx=“xxx”}@Narasimha正如我在回答中所说的,如果您从多个类调用
getString
,那么使用选项#2可能是更安全的路径;)嘿,伙计,如果这回答了你的问题,请确保将投票/标记为已接受的答案(单击复选标记)。谢谢