annotate framework/env/encode/json.lua @ 382:810c020b0da4
Reverted changes to mondelefant_result_index and mondelefant_result_newindex C-functions (proxying of JSON document)
author |
jbe |
date |
Mon Nov 16 18:31:49 2015 +0100 (2015-11-16) |
parents |
81d94b362043 |
children |
|
rev |
line source |
jbe/bsw@0
|
1 --[[--
|
jbe@285
|
2 json_string = -- JavaScript code
|
jbe/bsw@0
|
3 encode.json(
|
jbe@285
|
4 value -- nil, false, true, a number, a string, or json.array{...} or json.object{...}
|
jbe/bsw@0
|
5 )
|
jbe/bsw@0
|
6
|
jbe@285
|
7 This function encodes any native datatype or table structure to JavaScript object notation (JSON). In order to distinguish between the empty array and the empty object, use json.array{} and json.object{} respectively.
|
jbe@10
|
8
|
jbe@285
|
9 The return value of this function is additionally escaped in such way that it can be safely included in inline scripts both in HTML and XHTML (within CDATA section).
|
jbe@223
|
10
|
jbe/bsw@0
|
11 --]]--
|
jbe/bsw@0
|
12
|
jbe/bsw@0
|
13 function encode.json(obj)
|
jbe@293
|
14 local str = json.export(obj)
|
jbe@285
|
15 str = string.gsub(str, "</", "<\\/")
|
jbe@285
|
16 str = string.gsub(str, "<!%[CDATA%[", "\\u003c![CDATA[")
|
jbe@285
|
17 str = string.gsub(str, "]]>", "]]\\u003e")
|
jbe@285
|
18 return str
|
jbe/bsw@0
|
19 end
|