1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Copyright 2012-2013 Alexis Laferrière <alexis.laf@xymus.net>
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
21 redef class HashMap[K
,V
]
24 var es
= new Array[String]
27 es
.add
( "\"{k}\
":\"{v}\
"" )
29 es
.add
( "\"{k}\
": null" )
32 return "\{{es.join(",")}\}"
39 var json_map
= json_to_object
40 if json_map
!= null then
42 print json_map
.to_json
.replace
(" ","")
44 # only available for libjson0 v0.10
45 # print json_map.to_pretty_json
47 print
"Conversion to json failed."
52 fun print_usage
do print
"Usage: json input.json"
54 if args
.length
== 1 then
55 var input_path
= args
.first
56 var input_file
= new IFStream.open
( input_path
)
57 var input_text
= input_file
.read_all
60 input_text
.parse_and_display
62 var s
= "\{\"int\":1234, \"float\":0.1234, \"str\":\"str\", \"null\":null\}"
65 s
= "\{\"arr\":[1,2,3], \"obj\":\{\"int\":123, \"float\":-234.45\}\}"
68 s
= "\{\"arr\":[1,2.3,null,\"str\"], \"obj\":\{\"int\":123, \"float\":-234.45\}\}"