|
David Lutterkort |
fe2756 |
From 100a7b38222a63c6435a72b4974b55f39a28989e Mon Sep 17 00:00:00 2001
|
|
David Lutterkort |
fe2756 |
From: Lubomir Rintel <lubo.rintel@gooddata.com>
|
|
David Lutterkort |
fe2756 |
Date: Mon, 9 Jan 2012 19:24:41 +0100
|
|
David Lutterkort |
fe2756 |
Subject: [PATCH 2/2] Correctly parse empty object and arrays in JSON
|
|
David Lutterkort |
fe2756 |
|
|
David Lutterkort |
fe2756 |
Add a test case.
|
|
David Lutterkort |
fe2756 |
Fix from David Lutterkort <lutter@redhat.com>.
|
|
David Lutterkort |
fe2756 |
|
|
David Lutterkort |
fe2756 |
https://fedorahosted.org/augeas/ticket/248
|
|
David Lutterkort |
fe2756 |
---
|
|
David Lutterkort |
fe2756 |
lenses/json.aug | 4 ++--
|
|
David Lutterkort |
fe2756 |
lenses/tests/test_json.aug | 5 +++++
|
|
David Lutterkort |
fe2756 |
2 files changed, 7 insertions(+), 2 deletions(-)
|
|
David Lutterkort |
fe2756 |
|
|
David Lutterkort |
fe2756 |
diff --git a/lenses/json.aug b/lenses/json.aug
|
|
David Lutterkort |
fe2756 |
index 6ceab09..2645806 100644
|
|
David Lutterkort |
fe2756 |
--- a/lenses/json.aug
|
|
David Lutterkort |
fe2756 |
+++ b/lenses/json.aug
|
|
David Lutterkort |
fe2756 |
@@ -37,9 +37,9 @@ let const (r:regexp) = [ label "const" . store r . ws ]
|
|
David Lutterkort |
fe2756 |
let value0 = str | number | const /true|false|null/
|
|
David Lutterkort |
fe2756 |
|
|
David Lutterkort |
fe2756 |
let fix_value (value:lens) =
|
|
David Lutterkort |
fe2756 |
- let array = [ label "array" . lbrack . Build.opt_list value comma . rbrack ] in
|
|
David Lutterkort |
fe2756 |
+ let array = [ label "array" . lbrack . (Build.opt_list value comma)? . rbrack ] in
|
|
David Lutterkort |
fe2756 |
let pair = [ label "entry" . str_store . colon . value ] in
|
|
David Lutterkort |
fe2756 |
- let obj = [ label "dict" . lbrace . Build.opt_list pair comma . rbrace ] in
|
|
David Lutterkort |
fe2756 |
+ let obj = [ label "dict" . lbrace . (Build.opt_list pair comma)? . rbrace ] in
|
|
David Lutterkort |
fe2756 |
(str | number | obj | array | const /true|false|null/)
|
|
David Lutterkort |
fe2756 |
|
|
David Lutterkort |
fe2756 |
(* Typecheck finitely deep nesting *)
|
|
David Lutterkort |
fe2756 |
diff --git a/lenses/tests/test_json.aug b/lenses/tests/test_json.aug
|
|
David Lutterkort |
fe2756 |
index d8b7fa8..aec7d4c 100644
|
|
David Lutterkort |
fe2756 |
--- a/lenses/tests/test_json.aug
|
|
David Lutterkort |
fe2756 |
+++ b/lenses/tests/test_json.aug
|
|
David Lutterkort |
fe2756 |
@@ -30,6 +30,11 @@ test lns get "{ \"0\": true, \"1\":false }" =
|
|
David Lutterkort |
fe2756 |
test lns get "{\"menu\": \"entry one\"}" =
|
|
David Lutterkort |
fe2756 |
{ "dict" { "entry" = "menu" { "string" = "entry one" } } }
|
|
David Lutterkort |
fe2756 |
|
|
David Lutterkort |
fe2756 |
+test lns get "[ ]" =
|
|
David Lutterkort |
fe2756 |
+ { "array" }
|
|
David Lutterkort |
fe2756 |
+
|
|
David Lutterkort |
fe2756 |
+test lns get "{}" =
|
|
David Lutterkort |
fe2756 |
+ { "dict" }
|
|
David Lutterkort |
fe2756 |
|
|
David Lutterkort |
fe2756 |
let s = "{\"menu\": {
|
|
David Lutterkort |
fe2756 |
\"id\": \"file\",
|
|
David Lutterkort |
fe2756 |
--
|
|
David Lutterkort |
fe2756 |
1.7.7.5
|
|
David Lutterkort |
fe2756 |
|