diff modules/dict.tp @ 271:bb4723fec05e

Support for encoding objects, dictionaries, lists and arrays to JSON in json module
author Michael Pavone <pavone@retrodev.com>
date Sat, 19 Jul 2014 19:59:51 -0700
parents 697c2c562af2
children eef8a5cea812
line wrap: on
line diff
--- a/modules/dict.tp	Fri Jul 18 20:45:50 2014 -0700
+++ b/modules/dict.tp	Sat Jul 19 19:59:51 2014 -0700
@@ -1,4 +1,12 @@
 {
+	_jsonEncode <- :dict {
+		parts <- #[]
+		foreach: dict :key val {
+			//TODO: escape field names
+			parts append: (key jsonEncode) . ":" . (json encode: val)
+		}
+		"{" . (parts join: ",") . "}"
+	}
 	linearWithEls <- :els {
 		key:val <- :k v {
 			#{
@@ -77,6 +85,10 @@
 			}
 
 			length <- { els length }
+
+			jsonEncode <- {
+				_jsonEncode: self
+			}
 		}
 	}
 	_empty <- #{
@@ -202,6 +214,10 @@
 						}
 					}
 				}
+
+				jsonEncode <- {
+					_jsonEncode: self
+				}
 			}
 		}