首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Jsoniq显示json中的一些字符串。

使用Jsoniq显示json中的一些字符串。
EN

Stack Overflow用户
提问于 2016-09-09 18:26:33
回答 1查看 360关注 0票数 1

你们能教我如何使用jsoniq来显示图书名,即罗宾克鲁斯和汤姆琼斯吗?我做过一些研究,但不管我怎么做,都是错误的。

代码语言:javascript
复制
{
   "books": {
      "reader": {
         "Read": {
            "book": {
               "name": "Robinson Crusoe",
               "author": "Daniel Defoe"
            }
         },
         "HaventRead": {
            "book": {
               "name": " Tom Jones",
               "author": "Henry Fielding "
            }
         },
         "_type": "Ken Rawing"
      }
   }
}

这就是我在zorba.io中所做的,它有很多错误,我非常确信我的做法是完全错误的。请教我

代码语言:javascript
复制
for $reader in collection("books"),
$read in collection("books"),
$book in collection ("books")
where $reader.type eq "Ken Rawing"
return $book

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-09 18:45:37

从JSON文档中获取一些叶值是使用导航语法完成的,导航语法是.符号。

它不需要for子句,因为迭代在.中是隐式的。

假设该对象存储在变量$content中,则$content.books.reader使用ReadHaventRead字段导航到该对象。然后调用jnlib:values()会在其中获取两个对象,然后一个会一直延续到.book.name的名称。

查询是这样的(其中大部分实际上是输入文档本身,通常存储在文件或数据存储中):

代码语言:javascript
复制
jsoniq version "1.0";

import module namespace jnlib = "http://jsoniq.org/function-library";

(: That's the input document, stored in a global variable :)
declare variable $content := {
   "books": {
      "reader": {
         "Read": {
            "book": {
               "name": "Robinson Crusoe",
               "author": "Daniel Defoe"
            }
         },
         "HaventRead": {
            "book": {
               "name": " Tom Jones",
               "author": "Henry Fielding "
            }
         },
         "_type": "Ken Rawing"
      }
   }
};

(: That's the query :)
jnlib:values($content.books.reader).book.name

请记住jsoniq version="1.0";,它激活了本机JSONiq解析器( try.zorba.io上的默认解析器是XQuery)。

它也可以在zorba.io中进行测试。

备注

JSONiq也作为XQuery的扩展存在,在这种情况下,导航是通过函数调用完成的,因为.是XML中的一个有效字符。但是,不建议使用它,除非您也需要处理XML。

代码语言:javascript
复制
jnlib:values($content("books")("reader"))("book")("name")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39417679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档