Lines Matching refs:json

137     ($json: expr) => {
138 assert_eq!($json["Image"]["Width"], 800.into());
139 assert_eq!($json["Image"]["Height"], 600.into());
140 assert_eq!($json["Image"]["Title"], "View from 15th Floor".into());
142 $json["Image"]["Thumbnail"]["Url"],
145 assert_eq!($json["Image"]["Thumbnail"]["Height"], 125.into());
146 assert_eq!($json["Image"]["Thumbnail"]["Width"], 100.into());
147 assert_eq!($json["Image"]["Animated"], false.into());
148 assert_eq!($json["Image"]["IDs"][0], 116.into());
149 assert_eq!($json["Image"]["IDs"][1], 943.into());
150 assert_eq!($json["Image"]["IDs"][2], 234.into());
151 assert_eq!($json["Image"]["IDs"][3], 38793.into());
156 ($json: expr) => {
157 assert_eq!($json[0]["precision"], "zip".into());
158 assert_eq!($json[0]["Latitude"], 37.7668.into());
159 assert_eq!($json[0]["Longitude"], (-122.3959).into());
160 assert_eq!($json[0]["Address"], "".into());
161 assert_eq!($json[0]["City"], "SAN FRANCISCO".into());
162 assert_eq!($json[0]["State"], "CA".into());
163 assert_eq!($json[0]["Zip"], "94107".into());
164 assert_eq!($json[0]["Country"], "US".into());
165 assert_eq!($json[1]["precision"], "zip".into());
166 assert_eq!($json[1]["Latitude"], 37.371991.into());
167 assert_eq!($json[1]["Longitude"], (-122.026020).into());
168 assert_eq!($json[1]["Address"], "".into());
169 assert_eq!($json[1]["City"], "SUNNYVALE".into());
170 assert_eq!($json[1]["State"], "CA".into());
171 assert_eq!($json[1]["Zip"], "94085".into());
172 assert_eq!($json[1]["Country"], "US".into());
177 ($json: expr) => {
178 assert_eq!($json[0]["null1"], JsonValue::new_null());
179 assert_eq!($json[1]["boolean1"], true.into());
180 assert_eq!($json[1]["boolean2"], false.into());
181 assert_eq!($json[2]["number1"], 0.into());
182 assert_eq!($json[2]["number2"], 0.into());
183 assert_eq!($json[2]["number3"], 123.into());
184 assert_eq!($json[2]["number4"], (-123).into());
185 assert_eq!($json[2]["number5"], 123.456.into());
186 assert_eq!($json[2]["number6"], (-123.456).into());
187 assert_eq!($json[2]["number7"], 1234560000.into());
188 assert_eq!($json[2]["number8"], 0.0000123456.into());
189 assert_eq!($json[2]["number9"], 1234560000.into());
190 assert_eq!($json[2]["number10"], 0.0000123456.into());
191 assert_eq!($json[2]["number11"], (-1234560000).into());
192 assert_eq!($json[2]["number12"], (-0.0000123456).into());
193 assert_eq!($json[2]["number13"], (-1234560000).into());
194 assert_eq!($json[2]["number14"], (-0.0000123456).into());
195 assert_eq!($json[2]["number15"], 0.into());
196 assert_eq!($json[2]["number16"], 0.into());
197 assert_eq!($json[2]["number17"], 300.into());
198 assert_eq!($json[3]["string1"], "".into());
199 assert_eq!($json[3]["string2"], "Hello World".into());
200 assert_eq!($json[3]["string3"], "abcdefghijklmnopqrstuvwxyz".into());
201 assert_eq!($json[3]["string4"], "ABCDEFGHIJKLMNOPQRSTUVWXYZ".into());
202 assert_eq!($json[3]["string5"], "0123456789".into());
203 assert_eq!($json[3]["string6"], " \u{0008}\u{000c}\n\r\t".into());
204 assert_eq!($json[3]["string7"], "\"\\/".into());
205 assert_eq!($json[3]["string8"], "`1~!@#$%^&*()_+-={':[,]}|;.</>?".into());
206 assert_eq!($json[3]["string9"], "\u{0123}\u{4567}\u{89AB}\u{CDEF}\u{abcd}\u{ef4A}".into());
207 assert_eq!($json[4]["array1"], Array::new().into());
208 assert_eq!($json[4]["array2"], Array::new().into());
209 assert_eq!($json[4]["array3"][0], JsonValue::new_null());
210 assert_eq!($json[4]["array3"][1], true.into());
211 assert_eq!($json[4]["array3"][2], 0.into());
212 assert_eq!($json[4]["array3"][3], "string".into());
213 assert_eq!($json[4]["array3"][4], Array::new().into());
214 assert_eq!($json[4]["array3"][5], Object::new().into());
215 assert_eq!($json[4]["array4"][0], JsonValue::new_null());
216 assert_eq!($json[4]["array4"][1], true.into());
217 assert_eq!($json[4]["array4"][2], 0.into());
218 assert_eq!($json[4]["array4"][3], "string".into());
219 assert_eq!($json[4]["array4"][4], Array::new().into());
220 assert_eq!($json[4]["array4"][5], Object::new().into());
221 assert_eq!($json[4]["array5"][0][0][0][0][0][0][0], "nest".into());
222 assert_eq!($json[5]["object1"], Object::new().into());
223 assert_eq!($json[5]["object2"], Object::new().into());
224 assert_eq!($json[5]["object3"]["key1"], JsonValue::new_null());
225 assert_eq!($json[5]["object3"]["key2"], true.into());
226 assert_eq!($json[5]["object3"]["key3"], 0.into());
227 assert_eq!($json[5]["object3"]["key4"], "string".into());
228 assert_eq!($json[5]["object3"]["key5"], Array::new().into());
229 assert_eq!($json[5]["object3"]["key6"], Object::new().into());
230 assert_eq!($json[5]["object4"]["key1"], JsonValue::new_null());
231 assert_eq!($json[5]["object4"]["key2"], true.into());
232 assert_eq!($json[5]["object4"]["key3"], 0.into());
233 assert_eq!($json[5]["object4"]["key4"], "string".into());
234 assert_eq!($json[5]["object4"]["key5"], Array::new().into());
235 assert_eq!($json[5]["object4"]["key6"], Object::new().into());
236 assert_eq!($json[5]["object5"]["nest1"]["nest2"]["nest3"]["nest4"], Object::new().into());
237 assert_eq!($json[6][""], "key1".into());
239 $json[6]["/\\\"\u{CAFE}\u{BABE}\u{AB98}\u{FCDE}\u{bcda}\u{ef4A}\u{0008}\u{000c}\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"],
242 assert_eq!($json[7]["key_value1"], "value".into());
243 assert_eq!($json[7]["key_value2"], Array::new().into());
244 assert_eq!($json[7]["key_value3"], Object::new().into());
252 * @brief 1. 准备一个 json 文本
268 // 测试 RFC7159 13. Examples 里的两个 json 文本。
269 let json = JsonValue::from_text(RFC7159_EXAMPLE1).unwrap();
270 rfc7159_example1_check!(json);
272 let json = JsonValue::from_text(RFC7159_EXAMPLE2).unwrap();
273 rfc7159_example2_check!(json);
275 let json = JsonValue::from_text(JSON_PARSE_TEST).unwrap();
276 json_parse_test_check!(json);
281 let mut json = JsonValue::from_text(json_text).unwrap();
282 // 初始时 json 为空。
283 assert!(json.try_as_object().unwrap().is_empty());
285 json["null"] = JsonValue::new_null();
286 json["boolean"] = true.into();
287 json["number"] = 123.into();
288 json["string"] = "Hello World".into();
289 json["array"] = Array::new().into();
290 json["object"] = Object::new().into();
292 assert!(json["null"].is_null());
293 assert_eq!(json["boolean"], true.into());
294 assert_eq!(json["number"], 123.into());
295 assert_eq!(json["string"], "Hello World".into());
296 assert_eq!(json["array"], Array::new().into());
297 assert_eq!(json["object"], Object::new().into());
298 assert_eq!(json.try_as_object().unwrap().len(), 6);
300 json["array"][0] = 123.into();
301 json["array"][1] = "string".into();
302 json["array"][2] = JsonValue::new_null();
304 assert_eq!(json["array"][0], 123.into());
305 assert_eq!(json["array"][1], "string".into());
306 assert_eq!(json["array"][2], JsonValue::new_null());
307 assert_eq!(json["array"].try_as_array().unwrap().len(), 3);
309 json["array"] = Array::new().into();
310 assert_eq!(json["array"].try_as_array().unwrap().len(), 0);
312 json["object"]["number"] = 123.into();
313 json["object"]["string"] = "string".into();
314 json["object"]["null"] = JsonValue::new_null();
316 assert_eq!(json["object"]["number"], 123.into());
317 assert_eq!(json["object"]["string"], "string".into());
318 assert_eq!(json["object"]["null"], JsonValue::new_null());
319 assert_eq!(json["object"].try_as_object().unwrap().len(), 3);
321 json["object"] = Object::new().into();
322 assert_eq!(json["object"].try_as_object().unwrap().len(), 0);
329 let mut json = JsonValue::from_text(RFC7159_EXAMPLE1).unwrap();
333 // 将 json 内容写入 vec 中
335 assert!(json.formatted_encode(&mut vec).is_ok());
337 // 通过 vec 重新生成一个 json 实例
343 json = temp;
346 let mut json = JsonValue::from_text(RFC7159_EXAMPLE2).unwrap();
350 // 将 json 内容写入 vec 中
352 assert!(json.formatted_encode(&mut vec).is_ok());
354 // 通过 vec 重新生成一个 json 实例
360 json = temp;
363 let mut json = JsonValue::from_text(JSON_PARSE_TEST).unwrap();
367 // 将 json 内容写入 vec 中
369 assert!(json.formatted_encode(&mut vec).is_ok());
371 // 通过 vec 重新生成一个 json 实例
377 json = temp;