JSON操作

JavaScript对象表示法(JSON)是一种轻量级的数据交换格式,便于人们读写。此外,机器生成和/或解析也同样简单。 JSON完全不依赖于语言,因此它是理想的交换格式。

要了解更多关于JSON的信息,请访问: json.org.

解析JSON

解析由另一个应用程序接收的JSON字符串,或在现有应用程序中生成的JSON字符串:

import json

struct Customer {
    first_name    string
    last_name     string
    hometown      string
}

fn main() {
    customers_string := '[{ "first_name": "Vitor", "last_name": "Oliveira", "hometown": "Rio de Janeiro" }, { "first_name": "Don", "last_name": "Nisnoni", "hometown": "Kupang" }]'
    customers := json.decode([]Customer, customers_string) or {
        eprintln('Failed to parse json')
        return
    }

    // Print the list of customers
    for customer in customers {
        println('$customer.first_name $customer.last_name: $customer.hometown')
    }
}

生成JSON

创建用于通信或序列化的JSON字符串也很简单。我们在下面的示例中解码和编码:

import json

struct Customer {
    first_name    string
    last_name     string
    hometown      string
}

fn main() {
    customer_string := '[{ "first_name": "Vitor", "last_name": "Oliveira", "hometown": "Rio de Janeiro"}]'

    customer := json.decode([]Customer, customer_string) or {
        eprintln('Failed to parse json')
        return
    }

    encoded_json := json.encode(customer)

    println(encoded_json)
}

练习

1.比较您在最喜欢的语言和V中处理JSON的方式。 2.构建包含地址信息的“Address”结构。 3.使用“Address”结构对包含JSON格式的字符串进行解码和编码。 4.创建两个结构:AddressUser,其中一个用户有许多地址。现在接收一个带有嵌套JSON的字符串,比如'[{ "first_name": "Vitor", "last_name": "Oliveira", "hometown": "Rio de Janeiro", "addresses": [{ street_name: "Rua Princesa Isabel", city: "Rio de Janeiro", country: "Brazil" }] }]',对其进行解码和编码。

Last updated