Tôi đang tạo một dịch vụ web nhỏ trong Nim và tôi cần trả lời các yêu cầu bằng json. Tôi đang sử dụng jester module để thực hiện dịch vụ. Tôi hy vọng tôi có thể sử dụng các mô-đun json trong thư viện cơ sở của Nim để xây dựng một số loại đối tượng với các lĩnh vực và giá trị, và sau đó chuyển đổi nó thành một chuỗi json. Nhưng bằng cách nào? Hoặc là có một cách tốt hơn để xây dựng json trong Nim?Cách chuyển đổi đối tượng thành json trong Nim
9
A
Trả lời
10
Trong Nim bạn sử dụng json module để tạo các đối tượng JsonNode
là object variants. Đây có thể được xây dựng với các procs cá nhân như newJObject() và sau đó điền trình tự fields
. Một cách nhanh hơn là sử dụng %() proc chấp nhận một chuỗi các bộ dữ liệu trong đó một giá trị là chuỗi có trường json và một giá trị khác là cá nhân JsonNode
.
Dưới đây là một ví dụ cho thấy cả hai cách:
import json
type
Person = object ## Our generic person record.
age: int ## The age of the person.
name: string ## The name of the person.
proc `%`(p: Person): JsonNode =
## Quick wrapper around the generic JObject constructor.
result = %[("age", %p.age), ("name", %p.name)]
proc myCustomJson(p: Person): JsonNode =
## Custom method where we replicate manual construction.
result = newJObject()
# Initialize empty sequence with expected field tuples.
var s: seq[tuple[key: string, val: JsonNode]] = @[]
# Add the integer field tuple to the sequence of values.
s.add(("age", newJInt(p.age)))
# Add the string field tuple to the sequence of values.
s.add(("name", newJString(p.name)))
result.fields = s
proc test() =
# Tests making some jsons.
var p: Person
p.age = 24
p.name = "Minah"
echo(%p) # { "age": 24, "name": "Minah"}
p.age = 33
p.name = "Sojin"
echo(%p) # { "age": 33, "name": "Sojin"}
p.age = 40
p.name = "Britney"
echo p.myCustomJson # { "age": 40, "name": "Britney"}
when isMainModule: test()
21
Module soái bao gồm một đối tượng-to-json thuật toán tuần tự chung mà làm việc cho bất kỳ loại (hiện tại, nó sử dụng thời gian chạy loại mẫn).
import marshal
type
Person = object
age: int
name: string
var p = Person(age: 38, name: "Torbjørn")
echo($$p)
Kết quả sẽ là:
{"age": 38, "name": "Torbj\u00F8rn"}
2
Một tùy chọn khác vạch ra bởi tôi here là phải làm như sau:
import json
var jsonResponse = %*
{"data": [{ "id": 35,
"type": "car",
"attributes": {"color":"red"} }]}
var body = ""
toUgly(body, jsonResponse)
echo body
Các vấn đề liên quan
- 1. Chuyển đổi chuỗi thành đối tượng JSON
- 2. Cách chuyển đổi chuỗi thành đối tượng json trong javascript
- 3. Chuyển đổi đối tượng C# thành đối tượng Json
- 4. Chuyển đổi chuỗi JSON thành đối tượng JSON
- 5. Chuyển đổi đối tượng JSON thành bộ đệm và đệm thành đối tượng JSON trở lại
- 6. chuyển đổi chuỗi json thành đối tượng python
- 7. Chuyển đổi đối tượng Trạng thái Tweepy thành JSON
- 8. Chuyển đổi một django ValuesQuerySet thành đối tượng json
- 9. Chuyển đổi dữ liệu biểu mẫu thành đối tượng JSON
- 10. Chuyển đổi các đối tượng Delphi thành JSON
- 11. Chuyển đổi chuỗi Json thành Danh sách các đối tượng
- 12. Đối tượng JSON thành chuỗi
- 13. Chuyển đổi NSData thành JSON
- 14. Pymongo/bson: Chuyển đổi đối tượng python.cursor.Cursor thành đối tượng có thể tuần tự/JSON
- 15. Cách chuyển đổi đối tượng Swift thành từ điển
- 16. Chuyển đổi json vào đối tượng lớp trong C#
- 17. Ống góc 2 biến đổi đối tượng JSON thành JSON
- 18. Cách chuyển đổi JSON thành Object
- 19. Chuyển đối tượng j thành json thành jquery?
- 20. Chuyển đổi đối tượng XmlDocument thành đối tượng XmlNode - C#?
- 21. Đối tượng JS thành chuỗi JSON?
- 22. Chuyển đổi XML để đối tượng JSON trong Android
- 23. Chuyển đổi đối tượng JSON chuỗi trong C#
- 24. Làm cách nào để chuyển đổi mảng C# hai chiều thành đối tượng JSON?
- 25. ASP.NET MVC: Cách chuyển đổi Xem mô hình thành đối tượng Json
- 26. Chuyển đổi các loại đối tượng java ẩn danh thành JSON bằng cách sử dụng GSon
- 27. Cách chuyển đổi đối tượng thành tệp json cho trình tải mô hình ba.js
- 28. Chuyển đổi đối tượng SRE_Match thành chuỗi
- 29. Powershell: Chuyển đổi đối tượng thành chuỗi
- 30. Chuyển đổi chuỗi thành đối tượng datetime.time
Trong khi Grzegorz câu trả lời là chỉ là những gì tôi đang tìm kiếm, câu trả lời này cũng rất hữu ích, thú vị và đơn giản hơn việc sử dụng mô-đun json. Mát mẻ! –
Dường như trong Nim mọi người đều khai thác? – PascalVKooten