{"id":4545,"date":"2025-01-13T22:23:58","date_gmt":"2025-01-13T13:23:58","guid":{"rendered":"https:\/\/www.wsmeguro.jp\/wp\/?p=4545"},"modified":"2025-01-16T08:28:50","modified_gmt":"2025-01-15T23:28:50","slug":"dart%e3%81%ae%e5%8b%89%e5%bc%b710-2%ef%bc%9a%e3%82%af%e3%83%a9%e3%82%b9%ef%bc%88json%e3%81%ae%e5%8f%96%e6%89%b1%e3%81%84%ef%bc%89","status":"publish","type":"post","link":"https:\/\/www.wsmeguro.jp\/wp\/?p=4545","title":{"rendered":"Dart\u306e\u52c9\u5f3710-2\uff1a\u30af\u30e9\u30b9\uff08JSON\u306e\u53d6\u6271\u3044\uff09"},"content":{"rendered":"<p>JSON\u306fMap\u578b\u3068\u89aa\u548c\u6027\u306e\u9ad8\u3044\u5f62\u5f0f\u3067\u3059\u304c\u3001\u30af\u30e9\u30b9\u3092\u4f7f\u3046\u3068\u578b\u5b89\u5168\u3067\u53ef\u8aad\u6027\u3082\u4e0a\u304c\u308a\u3001\u518d\u5229\u7528\u3067\u304d\u3066\u3001\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u5909\u66f4\u304c\u3042\u3063\u3066\u3082\u30af\u30e9\u30b9\u306e\u5909\u66f4\u3060\u3051\u3067\u5bfe\u5fdc\u3067\u304d\u3066\u4fdd\u5b88\u6027\u3082\u4e0a\u304c\u308b\u3044\u3044\u3053\u3068\u305a\u304f\u3081\u3060\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u3002<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-dart\" data-lang=\"Dart\">\r\nimport 'dart:convert';\r\nclass User {\r\n  String name;\r\n  int age;\r\n  List<String> skills;\r\n\r\n  User({required this.name, required this.age, required this.skills});\r\n\r\n  \/\/ JSON\u304b\u3089User\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u751f\u6210\r\n  factory User.fromJson(Map<String, dynamic> json) {\r\n    return User(\r\n      name: json['name'],\r\n      age: json['age'],\r\n      skills: List<String>.from(json['skills']),\r\n    );\r\n  }\r\n\r\n  \/\/ User\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092JSON\u306b\u5909\u63db\r\n  Map<String, dynamic> toJson() {\r\n    return {\r\n      'name': name,\r\n      'age': age,\r\n      'skills': skills,\r\n    };\r\n  }\r\n}\r\n\r\nvoid main() {\r\n  String jsonString = '{\"name\": \"Otani\", \"age\": 30, \"skills\": [\"Picher\", \"Batter\"]}';\r\n\r\n  \/\/ JSON\u6587\u5b57\u5217\u3092Map\u306b\u5909\u63db\uff08\u30ad\u30fc\u306e\u5024\u306fDynamic\u306b\u3057\u3066\u69d8\u3005\u306a\u578b\u306b\u5bfe\u5fdc\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u304a\u304f\uff09\r\n  Map<String, dynamic> userMap = jsonDecode(jsonString);\r\n\r\n  \/\/ Map\u304b\u3089User\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u751f\u6210\r\n  User user = User.fromJson(userMap);\r\n\r\n  print(user.name);  \/\/ Otani\r\n  print(user.skills); \/\/ [Picher, Batter]\r\n\r\n  \/\/ User\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092JSON\u6587\u5b57\u5217\u306b\u5909\u63db\r\n  String newJsonString = jsonEncode(user.toJson());\r\n  print(newJsonString);\r\n  \/\/ {\"name\":\"Otani\",\"age\":30,\"skills\":[\"Picher\",\"Batter\"]}\r\n}\r\n<\/pre>\n<\/div>\n<p>\u81ea\u5206\u3067\u3001\u5909\u63db\u3059\u308b\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u306e\u304c\u9762\u5012\u306a\u4eba\u5411\u3051\uff08\u305f\u3060\u3057\u3001\u52d5\u304b\u3059\u307e\u3067\u5927\u5909\u3060\u3063\u305f\uff09<br \/>\n\uff11\uff0edart\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3059\u308b\u3002<br \/>\n<code>dart crate my_project<\/code><br \/>\nmy_project\u30d5\u30a9\u30eb\u30c0\u3092VS Code\u3067\u958b\u304f\u3002<\/p>\n<p>\uff12\uff0e\u30b3\u30fc\u30c9\u3092\u66f8\u304f<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-dart\" data-lang=\"Dart\">\n\uff08lib\/my_project.dart\uff09<br \/>\nimport 'package:json_annotation\/json_annotation.dart';<\/p>\n<p>part 'my_project.g.dart';<\/p>\n<p>@JsonSerializable()<br \/>\nclass User {<br \/>\n  String name;<br \/>\n  int age;<br \/>\n  List<String> skills;<\/p>\n<p>  User({required this.name, required this.age, required this.skills});<\/p>\n<p>  factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);<br \/>\n  Map<String, dynamic> toJson() => _$UserToJson(this);<br \/>\n}<\/p>\n<p>\uff08bin\/my_project.dart\uff09<br \/>\nimport 'package:my_project\/my_project.dart';<\/p>\n<p>void main() {<br \/>\n  var user = User(name: 'Otani', age: 30, skills: ['Picher', 'Batter']);<br \/>\n  print(user.toJson());<br \/>\n}<br \/>\n<\/code><\/p>\n<p>\uff13\uff0e\uff13\u3064\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u5c0e\u5165\u3059\u308b\u3002\uff082\u3064\u76ee\u30683\u3064\u76ee\u306fdev_dependencies:\u306b\u7f6e\u304b\u308c\u308b\uff09<br \/>\n<code>dart pub add json_annotation<br \/>\ndart pub add dev:build_runner<br \/>\ndart pub add dev:json_serializable<\/code><\/p>\n<p>\uff14\uff0ebuild_runner\u3092\u8d77\u52d5\u3059\u308b<br \/>\n<code>dart run build_runner build<\/code><\/p>\n<p>\u3053\u308c\u3067<code>dart run<\/code>\u3067\u884c\u3051\u308b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>JSON\u306fMap\u578b\u3068\u89aa\u548c\u6027\u306e\u9ad8\u3044\u5f62\u5f0f\u3067\u3059\u304c\u3001\u30af\u30e9\u30b9\u3092\u4f7f\u3046\u3068\u578b\u5b89\u5168\u3067\u53ef\u8aad\u6027\u3082\u4e0a\u304c\u308a\u3001\u518d\u5229\u7528\u3067\u304d\u3066\u3001\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u5909\u66f4\u304c\u3042\u3063\u3066\u3082\u30af\u30e9\u30b9\u306e\u5909\u66f4\u3060\u3051\u3067\u5bfe\u5fdc\u3067\u304d\u3066\u4fdd\u5b88\u6027\u3082\u4e0a\u304c\u308b\u3044\u3044\u3053\u3068\u305a\u304f\u3081\u3060\u3068\u3044\u3046\u3053\u3068\u3067\u3059\u3002 import &#8216;dar&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"categories":[595,505],"tags":[674,601,619,673,675,596],"class_list":{"0":"post-4545","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"hentry","6":"category-dart2","7":"category-programming","8":"tag-build_runner","9":"tag-dart","11":"tag-dev_dependencies","12":"tag-json_serializable","13":"tag-vs-code"},"_links":{"self":[{"href":"https:\/\/www.wsmeguro.jp\/wp\/index.php?rest_route=\/wp\/v2\/posts\/4545","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsmeguro.jp\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsmeguro.jp\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsmeguro.jp\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsmeguro.jp\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4545"}],"version-history":[{"count":1,"href":"https:\/\/www.wsmeguro.jp\/wp\/index.php?rest_route=\/wp\/v2\/posts\/4545\/revisions"}],"predecessor-version":[{"id":4546,"href":"https:\/\/www.wsmeguro.jp\/wp\/index.php?rest_route=\/wp\/v2\/posts\/4545\/revisions\/4546"}],"wp:attachment":[{"href":"https:\/\/www.wsmeguro.jp\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsmeguro.jp\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsmeguro.jp\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}