我有JSON文件,我需要再次阅读,编辑和写出.
阅读工作正常,我在数据中与JSON数组的写入部分斗争.
我使用JSON.simple库来处理Java中的JSON.
该文件如下所示:
{
"maxUsers":100,
"maxTextLength":2000,
"maxFileSize":2000,
"services":
[
{
"serviceName":"?????c",
"className":"YandexConnector.class",
"isEnabled":true
},
{
"serviceName":"Google",
"className":"GoogleConnector.class",
"isEnabled":false
}
]
}
Run Code Online (Sandbox Code Playgroud)
当我尝试将JSON数据(变量obj)写入文件时,该services数组被破坏.我的写作代码:
JSONObject obj = new JSONObject();
obj.put("maxUsers", this.getMaxUsers());
obj.put("maxTextLength", this.getMaxTextLength());
obj.put("maxFileSize", this.getMaxFileSize());
JSONArray servicesJSON = new JSONArray();
ArrayList<Service> servicesArray = this.getServices();
for(int i=0; i< servicesArray.size(); i++)
{
servicesJSON.add(servicesArray.get(i));
}
obj.put("services", servicesJSON);
FileWriter file = new FileWriter(filename);
obj.writeJSONString(file);
file.flush();
file.close();
Run Code Online (Sandbox Code Playgroud)
这输出:
{
"services":
[
translator.settings.Service@121c5df,
translator.settings.Service@45f4ae
],
"maxTextLength":2000,
"maxUsers":100,
"maxFileSize":2000
}
Run Code Online (Sandbox Code Playgroud)
如何将JSON数据正确地写入文件,如果我在JSONArray中这样做services …
我收到一个错误,即使导入了包,Eclipse Oxygen Java 中也不存在包我查看了此链接:包不存在 - Eclipse。这对我没有帮助。.jar 在我的构建路径中,但当我构建时它仍然出现错误。我使用的是 JDK 8,似乎在 json-simple.jar 上遇到错误。操作系统:Windows 10。该 jar 位于构建路径类路径变量中,并已在订单和导出中进行检查。
我的 JSON 数组文件:
[
{
"setName": "set-1",
"testTagName": "Test1",
"methodName": "addCustomer"
},
{
"setName": "set-1",
"testTagName": "Test2",
"methodName": "addAccount"
},
{
"setName": "set-2",
"testTagName": "Test3",
"methodName": "addRole"
}
]
Run Code Online (Sandbox Code Playgroud)
我使用Java。我在 Gson 对象中有上面的 JSON 数组。如何迭代此 Gson 数组以检查JSON 数组的任何对象中的键“methodName”的数组中是否存在特定方法名称(例如:addRole)?我期待结果是真/假。
我检查了 GSON 文档 - ( https://github.com/google/gson/blob/master/gson/src/main/java/com/google/gson/JsonObject.java#L141 )
该has方法似乎检查密钥。我正在寻找一种可以迭代数组对象并检查特定键是否存在特定值的方法。
我怎样才能实现这个目标?
我正在使用json简单来创建和解析一些json.然而,在创建它之后,我会ParseException在我做的时候得到它parser.parse(jStr);.以下是价值jStr
{"score":12,"balls":[[PURPLE_V,134.33325,331.11713,2.0,10.750022,-115,11.0,0],[PURPLE_SPLAT,59.209473,169.87143,0.0,6.2909174,16,11.0,1],[GREEN_V,119.00015,73.71671,-12.0,6.7500067,-35,11.0,0],[ORANGE_V,229.66664,7.4416676,8.0,5.250001,-5,11.0,0]]}
Run Code Online (Sandbox Code Playgroud)
这有什么问题?我可以不做数组数组吗?
有我的 JSON 结构:
{
"date":"19.11.2013",
"parent":{
"child1":[
{
"date":"2013-11-19",
"time":"10:30",
},
{
"date":"2013-11-19",
"time":"12:20",
}
],
"child2":[
{
"date":"2013-11-19",
"time":"10:30",
},
{
"date":"2013-11-19",
"time":"12:20",
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
这是我目前的代码:
public class json {
public static void main(String[] args) throws IOException, ParseException {
URL urlData = new URL("http://path.to/json");
BufferedReader reader = new BufferedReader(new InputStreamReader(
urlData.openConnection().getInputStream(), "utf-8"));
String struct = reader.readLine();
JSONParser parser = new JSONParser();
Object obj = parser.parse(struct);
JSONObject lev1 = (JSONObject) obj;
System.out.println(lev1.get("date"));
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了一个日期值(19.11.2013 …
我正在尝试使用Java中的simple.json来读取和解析json文件.但是,在浮点数上我得到错误.我该如何解析浮点数?
JSON文件如下:
[
{
"region":"NF",
"destination":"d1",
"source":"s1",
"time":2003,
"value":0.1
},
{
"region":"NF",
"destination":"d2",
"source":"s2",
"time":2004,
"value":0.002
},
]
Run Code Online (Sandbox Code Playgroud)
我解析它的代码是:
JSONArray jsonArray = (JSONArray)obj;
Iterator<JSONObject> iterator = jsonArray.iterator();
while(iterator.hasNext()){
JSONObject jsonObject = iterator.next();
String region = (String) jsonObject.get("region");
String src = (String) jsonObject.get("source");
String dst = (String) jsonObject.get("destination");
long time = (long) jsonObject.get("time");
long val = (long) jsonObject.get("value");
}
Run Code Online (Sandbox Code Playgroud) 我已经很长时间没有编程了,但我喜欢它并试图回到正轨。因此,请原谅这里问题/疑问的性质。
在我看来,我需要的非常简单,但我主要是在使用 gson 和 json-simple 来读取我的 json 文件(一次一个)并能够检索值方面遇到困难。
我在这里看到了很多方法,但正如我所说,已经有一段时间了,我在职业生涯中没有做过很多 Java 工作。因此需要一些关于最佳方法的指导/解释。
JSON:
[{ "car": "Toyota", "colour": "red", "qty": "1","date_manufactured":"12972632260006" }, { "car": "Hyundai", "colour": "red", "qty": "2","date_manufactured":"1360421626000" }, { "car": "Kia", "colour": "blue", "qty": "2", "date_manufactured":"1265727226000"}, ]
Run Code Online (Sandbox Code Playgroud)
任何帮助我走上正轨的帮助都是值得赞赏的!