- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个看起来像这样的对象:
{
/test1: {
get: {
tags: [
"restcalls"
]
}
},
/test2: {
put: {
tags: [
"restcalls"
]
}
}
}
HashMap<?, ?> json = new ObjectMapper().readValue(str, HashMap.class);
tags
并将其替换为其他关键字的最佳方法就是
"my rest calls"
。请注意,get,put也可以是任何其他变量名,因此它的动态但标记始终位于get,put下。
最佳答案
您已经选择Jackson作为Java-JSON库(我可以说是一个不错的选择),所以您面临的问题是如何使用Jackson来以最佳方式遍历和更新JSON,但是那些甚至在决定使用哪种Java的人使用的-JSON库可以读取here,它与下面提到的7个Java-JSON库进行比较。以下是链接的摘要摘录:
结论是,如果您知道仅使用小
您的应用程序中的数据量,并且您希望将其存储或读取到
从JSON格式开始,您应该考虑使用Flexjson或Gson 。如果
您将使用大量数据,并希望存储或读取
与JSON格式之间的对接,您应该考虑使用Jackson或
JSON库。
List
和
Map
表示形式。但是,由于拥有如此强大的处理能力和内存,如今真正重要的是性能。
com.fasterxml.jackson.databind.JsonNode
构成了 jackson 树模型的基础。
将Jackson的Tree模型视为HTML文档的DOM,则认为DOM以树结构表示完整的HTML文档,而Jackson的Tree模型则以树结构表示完整的JSON字符串。
import java.io.IOException;
import java.util.Iterator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
public class Test {
public static void main(String[] args) throws JsonProcessingException, IOException {
String jsonString = "{\"test1\": {\"get\": {\"tags\": [\"restcalls1\"]}}, \"test2\": {\"put\": {\"tags\": [\"restcalls2\"] }}}";
ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = objectMapper.readTree(jsonString);
Iterator<JsonNode> iterator2 = rootNode.iterator();
while (iterator2.hasNext()) {
JsonNode node2 = iterator2.next().findParent("tags");
ObjectNode objectNode = (ObjectNode) node2;
objectNode.putArray("tags").add("my rest calls");
}
Iterator<JsonNode> iterator = rootNode.iterator();
while (iterator.hasNext()) {
JsonNode node2 = iterator.next();
System.out.println(node2);
}
}
}
package com.him.services;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Test {
public static void main(String[] args) throws JsonProcessingException, IOException {
jacksonTest();
}
private static void jacksonTest() throws JsonProcessingException, IOException {
String jsonString = "{\"test1\": {\"get\": {\"tags\": [\"restcalls1\"]}}, \"test2\": {\"put\": {\"tags\": [\"restcalls2\"] }}}";
ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = objectMapper.readTree(jsonString);
ArrayList<JsonNode> nodeList = new ArrayList<JsonNode>();
nodeList.add(rootNode);
printCompleteJson(nodeList);
}
private static void printCompleteJson(ArrayList<JsonNode> rootNode) throws IOException {
for (int i = 0; i < rootNode.size(); i++) {
Iterator<JsonNode> iterator = rootNode.get(i).iterator();
JsonNode node = null;
ArrayList<JsonNode> nodeList = new ArrayList<JsonNode>();
boolean isEmpty = true;
while (iterator.hasNext()) {
isEmpty = false;
node = iterator.next();
nodeList.add(node);
System.out.println(node);
}
if(isEmpty){
return;
}
printCompleteJson(nodeList);
}
}
}
关于java - 从LinkedHashMap检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34077663/
我是一名 Java 新手,在概念化如何解决尝试创建表示某些分层数据的 LinkedHashMap 的问题时遇到问题。 这是我目前所知的。在此示例中,我有一个 LinkedHashMap,它显示了展平的
我有 LinkedHashMap 列表,如何不可分割地访问每个 LinkedHashMap。 List> listOfRecords 我想要 List abc= new listOsRecords.1
我有一个 LinkedHashMap,其中包含另一个 LinkedHashMap,如下所示: LinkedHashMap> containerMap = new LinkedHashMap>(); 我
我有 2 个 LinkedHashMap, LinkedHashMap, Color> map; LinkedHashMap, Color> totalMap; 两者是相同的,但 map 已通过使用撤
我有一个 map 列表,我需要单独使用其中的每张 map 以用于进一步的目的。这是我正在使用的代码片段 for(int i = 0; i ()); } int j=0; whi
我有一个扩展 LinkedHashMap 的类 (EntireFile)。我尝试转换: EntireFile old = (EntireFile) functionReturningLinkedHas
我有一个构建 LinkedHashMap 的方法,这样我就可以保持顺序。这是我的方法: public class MyClass { public Map buildMap() {
我是 Scala 的新手。我一直在尝试将 java LinkedHashMap 转换为 Scala 中的等效集合(LinkedHashMap?)以保留插入顺序。 尝试按照其他线程中的建议进行操作,但似
我有一个LinkedHashMap看起来像这样(真的不知道如何说明 HashMap): { "10/10/2010 10:10:10" => "SomeText1", "10/10/2019
我被包裹了LinkedHashMap>进入列表; List>> list = new ArrayList(mainCodesMap.entrySet()); 哪个mainCodeMap是 Map> 的
我有两个链接的 HashMap (key - String, value = String[]),它们在两个链接的 HashMap 中具有相同的大小和相同的键,我希望能够根据键,验证一个链接 Hash
假设我有以下数据结构: LinkedHashMap> foodFamilies = new LinkedHashMap<>(); 看起来像这样: {Fruit = [{Name = Apple,
如何对 LinkedHashMap 的 Arraylist 进行排序 前任。 ArrayList> list = new ArrayList>(); LinkedHashMap lin
LinkedHashMap lHashMap = new LinkedHashMap(); lHashMap.put("One", new Integer(1)); lHashMap.
关闭。这个问题需要details or clarity .它目前不接受答案。 想改善这个问题吗?通过 editing this post 添加详细信息并澄清问题. 8年前关闭。 Improve thi
我有一个简单的问题来找到数组 A 中的第一个唯一元素。但是,令我困扰的是使用不同方法的时间复杂度。到目前为止,我已经尝试过这两种方法。 第一种方法: LinkedHashMap> map = new
这个问题已经有答案了: How do I compare strings in Java? (23 个回答) 已关闭 4 年前。 我正在尝试将一对放入 linkedhashmap 中,但是当我放入 2
我需要用Java实现很久以前在Delphi中实现的代码,我尝试使用LinkedHashMap(在Delphi中使用TStringlist),因为我需要在插入元素时获取元素的索引,问题是是它不起作用..
在正确实现 hashCode 和 equals() 的情况下,以下代码会返回 false? myLinkedHashMap.containsKey(myLinkedHashMap.keySet().i
我让 XStream 使用此 xml 为我构建链接 HashMap : #!/masterofsoundtrack/broadcast #!/masterofsoun
我是一名优秀的程序员,十分优秀!