我有个文件名测试。json
{ "aaData":
[
{
"engine": "Trident",
"browser": "Internet Explorer 4.0",
"platform": "Win 95+",
"version": "4",
"grade": "X"
},
{
"engine": "Trident",
"browser": "Internet Explorer 5.0",
"platform": "Win 95+",
"version": "5",
"grade": "C"
}
]
}
我读了这个文件,我想得到这个
{ "sEcho":"1",
"iTotalRecords":97,
"iTotalDisplayRecords":9,
"aaData":
[
{
"engine": "Trident",
"browser": "Internet Explorer 4.0",
"platform": "Win 95+",
"version": "4",
"grade": "X"
},
{
"engine": "Trident",
"browser": "Internet Explorer 5.0",
"platform": "Win 95+",
"version": "5",
"grade": "C"
}
]
}
我要阅读和构建的代码
JsonParser parser = new JsonParser();
FileReader fr = new FileReader("web.json");
JsonElement element = parser.parse(fr);
StringBuilder sb = new StringBuilder();
sb.append("\"sEcho\":\"1\",");
sb.append("\"iTotalRecords\":\"97\",");
sb.append("\"iTotalDisplayRecords\":\"9\",");
Gson gson = new Gson();
JsonElement data = gson.fromJson(sb.toString(), JsonElement.class);
data.getAsJsonArray().add(element);
从JSON的那句话中,我得到了
com.google.gson.stream.MalformedJsonException:使用JsonReader.setLenient(true)接受格式错误的JSON
我的绳子坏了?
我试过了
Gson gson = new Gson();
JsonReader reader = new JsonReader(new StringReader(sb.toString()));
reader.setLenient(true);
JsonElement element = gson.fromJson(reader, JsonElement.class);
element.getAsJsonArray().add(data);
我知道这不是JSON数组。
您的字符串以
"sEcho":"1","iTotalRecords":"97","iTotalDisplayRecords":"9",
这不是有效的JSON。要使其成为有效的JSON,它需要位于{}的内部
然而,我的建议是避免自己构建json。
我建议创建一个与输入格式匹配的java类和一个与输出格式匹配的java类,而不是实用地编辑json字符串(这通常很棘手)。
使用以下内容创建输入类的实例:
InputClass i = gson.fromJson(inputString, InputClass.class)
然后创建输出类的实例。
OutputClass o = new OutputClass();
o.sEcho = 1;
o.iTotalRecords= 97;
o.iTotalDisplayRecords = 9;
o.aaData = i;
最后将您的输出渲染回json
String result = gson.toJson(o);
这可能看起来比附加到字符串更长,但它保证生成有效的JSON字符串,并且更擅长处理更改。您的输出也保证始终采用相同的格式。如果输入文件更改了格式,您的输出可能不会正确设置所有值,但至少结构将在那里,这将有助于防止消耗您的输出的任何内容发生中断更改。
我需要填充一个json文件,现在我有如下内容: 我需要添加另一个“元素”。我的第一步是使用,现在我需要添加新元素。我想我必须使用添加另一个元素,我尝试了以下方法: 但是当我尝试做时,我得到了错误"对象没有方法推送",我认为我做了一些非常错误的事情,因为我没有告诉任何地方的"元素"。 我该怎么做? 编辑:对不起,我脑子里有很多困惑。 我认为从,但我首先得到了我在JSON中输入的内容。 用数组代替对象
问题内容: 我有一个从JSON文件读取的JSON格式对象,该对象包含在一个名为teamJSON的变量中,如下所示: 我想向数组添加一个新项,例如 最后 在写回文件之前。什么是添加到新元素的好方法?我接近了,但是所有双引号都被转义了。我一直在寻找一个很好的答案,但是没有一个案例能解决这个问题。任何帮助表示赞赏。 问题答案: JSON 只是一种 表示法 ;进行所需的更改,以便可以将更改应用于本机 Ja
问题内容: 我有办法 在内部,我想调用另一个方法并将其传递,但是我想向其他对象添加新元素(描述)。 如何在Java中做到这一点?代码是什么样的? 问题答案: 只是一个数组。因此: 您可能需要弄混的通用类型。 您可以更快但更冗长:
我对JavaFX相对较新,我很困惑为什么我下面的代码没有产生预期的结果,即添加到网格中的标签。 我想做的是运行一个测试,将JavaFX标签添加到我的FXML GridPane,因为我想在不久的将来构建一个方法,允许用户选择一个文件,然后在用户选择文件时生成一个标签并将该标签添加到GridPane。 提前感谢, 代码: FXML代码是一个标准文件,其中定义了一个网格窗格,上面列出了fx:id。
我的D3.js代码生成以下HTML(取自inspect元素) 路径呈现一个底部有文本的圆圈。 最终,我希望文本位于SVG元素边界内的圆圈下方。如果SVG元素更大,G元素呈现得更大。我需要控制G元素的大小或路径元素的大小。 粗略的谷歌搜索没有多大帮助 谢谢你的洞察力。
问题内容: 假设我有一个数组,例如: 然后我想将一个元素推/追加到所述数组的末尾,以获得: 我应该使用哪种方法? 那我想在数组的 前面 添加一个元素呢?是否有固定的时间班次? 问题答案: 从 Swift 3/4/5开始 ,操作如下。 向数组末尾添加新元素。 将另一个数组附加到数组的末尾。 向您的数组中插入一个新元素。 将另一个数组的内容插入到数组中。 更多信息可以从第110页开始的“ Swift编