Comments (2)
Using json
also works:
module main
import json
const data = '
{
"comments": {
"26788945": {
"id": "26788945",
"message": "some comment 1"
},
"26788946": {
"id": "26788946",
"message": "some comment 2"
},
"26788947": {
"id": "26788947",
"message": "some comment 3"
}
}
}
'
struct Comment {
id string
message string
}
struct Comments {
mut:
comments map[string]Comment
}
fn main() {
root := json.decode(Comments, data)!
println(root)
}
from v.
Note that a more manual version of the program works:
module main
import x.json2
const data = '
{
"comments": {
"26788945": {
"id": "26788945",
"message": "some comment 1"
},
"26788946": {
"id": "26788946",
"message": "some comment 2"
},
"26788947": {
"id": "26788947",
"message": "some comment 3"
}
}
}
'
struct Comment {
id string
message string
}
struct Comments {
mut:
comments map[string]Comment
}
fn main() {
mut root := Comments{}
for k, v in json2.raw_decode(data)!.as_map()['comments']!.as_map() {
comment := json2.decode[Comment](v.str())!
root.comments[k] = comment
}
println(root)
}
producing:
Comments{
comments: {'26788945': Comment{
id: '26788945'
message: 'some comment 1'
}, '26788946': Comment{
id: '26788946'
message: 'some comment 2'
}, '26788947': Comment{
id: '26788947'
message: 'some comment 3'
}}
}
I expected that root := json2.decode[Comments](data)!
would produce the same.
from v.
Related Issues (20)
- Test failed on OpenBSD for vlib/net/http/server_test.v
- Build fails on OpenBSD with clang and cstrict compilation HOT 3
- Map of fixed array initialisations HOT 4
- veb: parallel event loop HOT 5
- struct embedding must be declared at the beginning of the struct body HOT 2
- `coroutines` stuck whole program
- Can't add same element to cleared map HOT 2
- veb: memory leak HOT 1
- After clear(), a map allows double entries
- After calling clear() on a map several times, duplicate keys are allowed
- calling map.clear() fails to change the receiver map, in such a way that it has the exact same observable behaviour as doing `m = {}` for some maps HOT 4
- flag.FlagParser bug with certain combination of flags
- Binary crashes when compiled with tcc on OpenBSD HOT 5
- C compilation error when compiling simple Generic Interface test case
- cgen error for using a `default := p or { T{} }` construct in a generic function HOT 6
- type OneD = []Thing causes unexpected behaviour HOT 1
- FlagParser single letter options dependent on order of flags.
- C error when trying to use a &Struct value where Struct is required instead
- toml: Provide a way to set default values when decoding TOML
- C error when implementing two interfaces, one of them generic
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from v.