在杰克逊的数据绑定的文档表明,杰克逊支持deserialising"所有支持类型的数组",但我想不通这个确切的语法.
对于单个对象,我会这样做:
//json input
{
"id" : "junk",
"stuff" : "things"
}
//Java
MyClass instance = objectMapper.readValue(json, MyClass.class);
Run Code Online (Sandbox Code Playgroud)
现在对于一个数组我想这样做:
//json input
[{
"id" : "junk",
"stuff" : "things"
},
{
"id" : "spam",
"stuff" : "eggs"
}]
//Java
List<MyClass> entries = ?
Run Code Online (Sandbox Code Playgroud)
有人知道是否有一个神奇的缺失命令?如果没有那么解决方案是什么?
如何在Java中将hashmap转换或转换为JSON对象,并再次将JSON对象转换为JSON字符串?
转换JSON代码的最佳方法是:
{
"data" :
{
"field1" : "value1",
"field2" : "value2"
}
}
Run Code Online (Sandbox Code Playgroud)
在Java Map中,其中一个键是(field1,field2),这些字段的值是(value1,value2).
有任何想法吗?我应该使用Json-lib吗?或者更好,如果我写自己的解析器?
我正在尝试在Gson输出中使用自定义日期格式,但.setDateFormat(DateFormat.FULL)似乎不起作用,它也一样.registerTypeAdapter(Date.class, new DateSerializer()).
这就像Gson不关心对象"Date"并以其方式打印它.
我怎么能改变呢?
谢谢
编辑:
@Entity
public class AdviceSheet {
public Date lastModif;
[...]
}
public void method {
Gson gson = new GsonBuilder().setDateFormat(DateFormat.LONG).create();
System.out.println(gson.toJson(adviceSheet);
}
Run Code Online (Sandbox Code Playgroud)
我一直用java.util.Date; setDateFormat()不起作用:(
我试图解析Java中的JSON字符串并找到键值对,以便我可以确定JSON对象的近似结构,因为JSON字符串的对象结构是未知的.
例如,一个执行可能有一个像这样的JSON字符串:
{"id" : 12345, "days" : [ "Monday", "Wednesday" ], "person" : { "firstName" : "David", "lastName" : "Menoyo" } }
Run Code Online (Sandbox Code Playgroud)
而另一个像这样:
{"url" : "http://someurl.com", "method" : "POST", "isauth" : false }
Run Code Online (Sandbox Code Playgroud)
我如何循环遍历各种JSON元素并确定键及其值?我看着jackson-core的JsonParser.我看到我如何抓住下一个"令牌"并确定它是什么类型的令牌(即字段名称,值,数组启动等),但是,我不知道如何获取实际令牌的值.
例如:
public void parse(String json) {
try {
JsonFactory f = new JsonFactory();
JsonParser parser = f.createParser(json);
JsonToken token = parser.nextToken();
while (token != null) {
if (token.equals(JsonToken.START_ARRAY)) {
logger.debug("Start Array : " + token.toString());
} else if (token.equals(JsonToken.END_ARRAY)) {
logger.debug("End Array …Run Code Online (Sandbox Code Playgroud) 我是firebase的新手,我正在尝试将json对象数据放入我的firebase中.我知道如何将数据作为类对象放入firebase,但我想放置json对象数据.
有没有办法将json对象数据放入firebase而不将其转换为pojo?
I've been able to get a jsonarray from a json string, but don't know how to put it in a Hashmap with a String that shows the type of cargo and an Integer showing the amount.
The string:
"cargo":[
{"type":"Coals","amount":75309},
{"type":"Chemicals","amount":54454},
{"type":"Food","amount":31659},
{"type":"Oil","amount":18378}
]
Run Code Online (Sandbox Code Playgroud) 我正在尝试比较2个JSON文件,它们具有重复值的数组。
我的第一个JSON对象具有如下数组:
"categories": [
"May",
"Apr",
"Mar"
]
Run Code Online (Sandbox Code Playgroud)
我的第二个JSON对象具有如下数组:
"categories": [
"May",
"May",
"Apr",
"Apr",
"Mar",
"Mar"
]
Run Code Online (Sandbox Code Playgroud)
我正在使用平面映射比较JSON,可以在此链接中找到该映射,使用guava比较JSON
这是我的代码的一部分:
private String smartJSONsCompare(JSONObject leftJson, JSONObject rightJson) {
String result = "</br>";
Gson gson = new Gson();
Type type = new TypeToken<Map<String, Object>>(){}.getType();
Map<String, Object> leftMap = gson.fromJson(leftJson.toString(), type);
Map<String, Object> rightMap = gson.fromJson(rightJson.toString(), type);
Map<String, Object> leftFlatMap = FlatMapUtil.flatten(leftMap);
Map<String, Object> rightFlatMap = FlatMapUtil.flatten(rightMap);
MapDifference<String, Object> difference = Maps.difference(leftFlatMap, rightFlatMap);
StringBuilder SB = new StringBuilder("</br>");
SB.append("Entries only on LEFT: …Run Code Online (Sandbox Code Playgroud) 我有一个JSONObject
{"2016":{"12":{"20":{"19":{"DonationTime":11111111111,"Donation":10}}}}}
Run Code Online (Sandbox Code Playgroud)
我想用每个键将它转换为新地图
int i = 0;
for (Iterator<String> keysItr = object.keySet().iterator(); keysItr.`hasNext(); i++) {
String key = keysItr.next();
Object value = object.get(key);
if(value instanceof JSONObject) {
value = toMap((JSONObject) value);
map.put(key, value);
}
}
SOP(map); //but here i want to get 4 maps
}
Run Code Online (Sandbox Code Playgroud)
我想得到4张地图
hourMap[19] = "{"DonationTime":11111111111,"Donation":10}";
dayMap[20] = "{"19":{"DonationTime":11111111111,"Donation":10}}";
monthMap[12] = "{"12":{"20":{"19":{"DonationTime":11111111111,"Donation":10}}}";
yearMap[2016] = "{"12":{"20":{"19":{"DonationTime":11111111111,"Donation":10}}}";
Run Code Online (Sandbox Code Playgroud)
我正在使用for循环但我无法获得i的递增值.