在Qt中如何通过QJson 解析json数据
答案:1 悬赏:80 手机版
解决时间 2021-02-18 08:24
- 提问者网友:眉目添风霜
- 2021-02-17 13:52
在Qt中如何通过QJson 解析json数据
最佳答案
- 五星知识达人网友:山河有幸埋战骨
- 2021-02-17 15:11
“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。 基础示例1.JSON 表示名称 / 值对的方式按照最简单的形式,可以用下面这样的 JSON 表示"名称 / 值对": < code>{ "firstName": "Brett" } 这个示例非常基本,而且实际上比等效的纯文本"名称 / 值对"占用更多的空间: firstName=Brett 但是,当将多个"名称 / 值对"串在一起时,JSON 就会体现出它的价值了。首先,可以创建包含多个"名称 / 值对"的 记录,比如: { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }从语法方面来看,这与"名称 / 值对"相比并没有很大的优势,但是在这种情况下 JSON 更容易使用,而且可读性更好。例如,它明确地表示以上三个值都是同一记录的一部分;花括号使这些值有了某种联系.
2 表示数组当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性。例如,假设您希望表示一个人名列表。在 XML 中,需要许多开始标记和结束标记;如果使用典型的名称 / 值对(就像在本系列前面文章中看到的那种名称 / 值对),那么必须建立一种专有的数据格式,或者将键名称修改为 person1-firstName这样的形式。如果使用 JSON,就只需将多个带花括号的记录分组在一起:
{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }, { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"}, { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" } ]}这不难理解。在这个示例中,只有一个名为 people的变量,值是包含三个条目的数组,每个条目是一个人的记录,其中包含名、姓和电子邮件地址。上面的示例演示如何用括号将记录组合成一个值。当然,可以使用相同的语法表示多个值(每个值包含多个记录):
{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }, { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" } ],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" }, { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }, { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" } ],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }, { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" } ] } QJson QJson是一个基于Qt的开发包用来将JSON数据解析成QVariant对象,Json 数组讲被映射成QVariantList实例,其他对象映射为QVariantMap实例 代码实现 设置pro文件 LIBS += -lqjson引入头文件 #include代码中使用 QJson::Parser QJson::Parser parser;bool ok;QString query = "[{\"rid\":\"102432\", \"pid\":\"1000\", \"username\":\"dxy\"},{\"rid\":\"000\", \"pid\":\"10200\", \"username\":\"dxy2\"}]";
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。 基础示例1.JSON 表示名称 / 值对的方式按照最简单的形式,可以用下面这样的 JSON 表示"名称 / 值对": < code>{ "firstName": "Brett" } 这个示例非常基本,而且实际上比等效的纯文本"名称 / 值对"占用更多的空间: firstName=Brett 但是,当将多个"名称 / 值对"串在一起时,JSON 就会体现出它的价值了。首先,可以创建包含多个"名称 / 值对"的 记录,比如: { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }从语法方面来看,这与"名称 / 值对"相比并没有很大的优势,但是在这种情况下 JSON 更容易使用,而且可读性更好。例如,它明确地表示以上三个值都是同一记录的一部分;花括号使这些值有了某种联系.
2 表示数组当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性。例如,假设您希望表示一个人名列表。在 XML 中,需要许多开始标记和结束标记;如果使用典型的名称 / 值对(就像在本系列前面文章中看到的那种名称 / 值对),那么必须建立一种专有的数据格式,或者将键名称修改为 person1-firstName这样的形式。如果使用 JSON,就只需将多个带花括号的记录分组在一起:
{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }, { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"}, { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" } ]}这不难理解。在这个示例中,只有一个名为 people的变量,值是包含三个条目的数组,每个条目是一个人的记录,其中包含名、姓和电子邮件地址。上面的示例演示如何用括号将记录组合成一个值。当然,可以使用相同的语法表示多个值(每个值包含多个记录):
{ "programmers": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }, { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" } ],
"authors": [
{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" }, { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }, { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" } ],
"musicians": [
{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }, { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" } ] } QJson QJson是一个基于Qt的开发包用来将JSON数据解析成QVariant对象,Json 数组讲被映射成QVariantList实例,其他对象映射为QVariantMap实例 代码实现 设置pro文件 LIBS += -lqjson引入头文件 #include
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯