我试图简化我的代码:我想存储键和值(所有字符串)。
我实际上在使用Map
我如何简化这段代码?递归函数就好了。
try {
JsonParser jsonParser = new JsonFactory().createJsonParser(content);
jsonParser.nextToken();
while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
jsonParser.nextToken();
if (jsonParser.getCurrentToken() == JsonToken.START_OBJECT) {
while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
String key = jsonParser.getCurrentName();
jsonParser.nextToken();
if (jsonParser.getCurrentToken() == JsonToken.START_OBJECT) {
mData.put(key, new HashMap<String, Object>());
while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
String subkey = jsonParser.getCurrentName();
jsonParser.nextToken();
if (jsonParser.getCurrentToken() == JsonToken.START_OBJECT) {
Map<String, Object> subdata = (Map<String, Object>) mData.get(key);
subdata.put(subkey, new HashMap<String, Object>());
while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
String subsubkey = jsonParser.getCurrentName();
jsonParser.nextToken();
Map<String, Object> subsubdata = (Map<String, Object>) subdata.get(subkey);
LogHelper.d("data[" + key + "][" + subkey + "][" + subsubkey + "]=" + jsonParser.getText());
subsubdata.put(subsubkey, jsonParser.getText());
}
}
else {
LogHelper.d("data[" + key + "]=" + jsonParser.getText());
mData.put(key, jsonParser.getText());
}
}
}
else {
LogHelper.d("data[" + key + "]=" + jsonParser.getText());
mData.put(key, jsonParser.getText());
}
}
}
else {
LogHelper.d("status=" + jsonParser.getText());
mStatus = jsonParser.getText();
}
}
}
catch (IllegalArgumentException e) {
error("0", "IllegalArgumentException: " + e.getMessage());
}
catch (JsonParseException e) {
error("0", "IOException: " + e.getMessage());
}
catch (IOException e) {
error("0", "IOException: " + e.getMessage());
}
假设您的最终目标只是将JSON反序列化为映射
final String json = "{}";
final ObjectMapper mapper = new ObjectMapper();
final MapType type = mapper.getTypeFactory().constructMapType(
Map.class, String.class, Object.class);
final Map<String, Object> data = mapper.readValue(json, type);
您将需要错误处理等,但这是一个很好的起点。
问题内容: 我试图简化我的代码:我想存储键和值(所有字符串)。 我实际上是使用A 来存储它。hat方法可以是值()或新节点()。 如何简化此代码?递归函数会很好。 问题答案: 假设您的最终目标只是将JSON反序列化为,那么使用Jackson可以简单得多。使用: 您将需要错误处理等,但这是一个很好的起点。
我用一个递归函数尝试过它,它迭代语句,当语句不是文字时,它会跟随对象到达下一个节点。像这样: 但不知怎的,我用这个方法没有什么进展。非常感谢你的每一次洞察。
问题内容: 我从REST服务返回以下JSON响应。现在,我需要将以下JSON响应反序列化为POJO。我正在与杰克逊合作。 在上面的json中,是一个可以具有多个json对象的JSON数组。现在也是JSON数组。现在棘手的部分是,我可以在每个类别对象中拥有多个级别,并且我不知道我将拥有多少个级别。给定以上JSON,我需要提取每个类别和last的内容。所以应该是这样的: 其中是类别的taskId,是l
本文向大家介绍js使用递归解析xml,包括了js使用递归解析xml的使用技巧和注意事项,需要的朋友参考一下 xml结构: 解析方法: 以上就是javascript使用递归解析XML的全部代码了,超级简洁,非常使用,给需要的小伙伴参考下。
我在解析名为“test.XML”的XML文件时遇到如下问题: 我想得到这样的结构:[[[[un]],[[deux,trois,quatre],[[cinq,six,sept],[huit,noeuf],[dix,onze]],但我得到了这个[[[cinq,six,sept],[[huit,noeuf],[[dix,onze],[[deux,trois,quatre]] 这是我的代码:
对于,我被赋予和。 现在给定N、A、B、C和X,如何有效地找到所有N个元素? 我需要把这N个元素分成2组,其中最大的元素在第一组,第二大的元素在第二组,第三大的元素在第一组,以此类推。。。最后需要找到两个集合元素之和的绝对差。 我可以在不计算所有元素的情况下找到这个差异吗?因为N可以大到最大值为100。