例如:给定此json文档:
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}
我想产生(类似)此输出:
store.book.category: "reference"
store.book.author: "Nigel Rees"
store.book.title: "Sayings of the Century"
store.book.price: 8.95
store.book.category: "fiction"
store.book.author: "Herman Melville"
store.book.title: "Moby Dick"
store.book.isbn: "0-553-21311-3"
store.book.price: 8.99
store.bicycle.color: "red"
store.bicycle.price: 19.95
expensive:10
与其使用原始文本,不如使用基于健壮的json库(gson,jackson等)之一的高效解决方案。
事实证明,使用Gson做到这一点非常容易,尤其是使用2.3中引入的JsonReader.getPath()方法时。
static void parseJson(String json) throws IOException {
JsonReader reader = new JsonReader(new StringReader(json));
reader.setLenient(true);
while (true) {
JsonToken token = reader.peek();
switch (token) {
case BEGIN_ARRAY:
reader.beginArray();
break;
case END_ARRAY:
reader.endArray();
break;
case BEGIN_OBJECT:
reader.beginObject();
break;
case END_OBJECT:
reader.endObject();
break;
case NAME:
reader.nextName();
break;
case STRING:
String s = reader.nextString();
print(reader.getPath(), quote(s));
break;
case NUMBER:
String n = reader.nextString();
print(reader.getPath(), n);
break;
case BOOLEAN:
boolean b = reader.nextBoolean();
print(reader.getPath(), b);
break;
case NULL:
reader.nextNull();
break;
case END_DOCUMENT:
return;
}
}
}
static private void print(String path, Object value) {
path = path.substring(2);
path = PATTERN.matcher(path).replaceAll("");
System.out.println(path + ": " + value);
}
static private String quote(String s) {
return new StringBuilder()
.append('"')
.append(s)
.append('"')
.toString();
}
static final String REGEX = "\\[[0-9]+\\]";
static final Pattern PATTERN = Pattern.compile(REGEX);
我有一棵看起来像上面的树,由一个链接结构表示: 我的目标是找到从根节点到叶节点的所有路径。 我的树遍历算法如下所示: 当我运行它时,我确信树正在按图所示构建。我已经测试过了。然而,我无法找出我的树遍历分割错误的原因。 我得到的输出是: 我已经在高度较小的树上测试了它,它是有效的。但是出于某种原因,它不适用于高度大于2的树。我认为这是树出了问题,我检查并打印了每个父级、左子级和右子级,它们打印出来如
本文向大家介绍php获取json数据所有的节点路径,包括了php获取json数据所有的节点路径的使用技巧和注意事项,需要的朋友参考一下 之前我们讲解过使用javascript获取json数据节点路径的问题,今天我们更进一步,讲解下php获取json数据所有的节点路径 以上所述就是本文的全部内容了,希望大家能够喜欢。
本文向大家介绍访问C ++中所有节点的最短路径,包括了访问C ++中所有节点的最短路径的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个带有N个节点的无向连通图,这些节点被标记为0、1、2,...,N-1。图的长度将为N,并且仅当节点i和j连接时,j才与列表graph [i]中的i不完全相同。我们必须找到访问每个节点的最短路径的长度。我们可以在任何节点处开始和停止,可以多次访问节点,并且可以
本文向大家介绍Elixir列出系统中所有可见的节点,包括了Elixir列出系统中所有可见的节点的使用技巧和注意事项,需要的朋友参考一下 示例
我试图解决一个问题,其中有一个带正加权边的无向图,我需要找到一个最短的路径,该路径正好覆盖所有节点,一旦给定了起始节点和结束节点。此外,图是完整的(每个节点都连接到图中的所有其他节点)。我已经试着寻找一个算法可以解决这个问题,但我还没有找到一个解决这个问题。由于起止节点的限制,这并不完全是旅游销售员的问题。我将感谢任何帮助。
我有一个加权和无向图,有顶点。其中两个顶点是和。 我需要找到最短的路径,从开始,在结束,并通过G的所有顶点(以任何顺序)。 如何做到这一点? 这不是旅行推销员问题:我不需要访问每个顶点一次,也不想回到第一个顶点。