Software / code / prosody
Comparison
util/json.lua @ 4284:20979f124ad9
util.json: Fixed handling of truncated JSON.
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Thu, 02 Jun 2011 05:36:15 +0500 |
| parent | 4147:7f119ebcf55f |
| child | 4404:5356664ef9d4 |
comparison
equal
deleted
inserted
replaced
| 4282:f5a46b73432b | 4284:20979f124ad9 |
|---|---|
| 132 | 132 |
| 133 ----------------------------------- | 133 ----------------------------------- |
| 134 | 134 |
| 135 | 135 |
| 136 function json.decode(json) | 136 function json.decode(json) |
| 137 json = json.." "; -- appending a space ensures valid json wouldn't touch EOF | |
| 137 local pos = 1; | 138 local pos = 1; |
| 138 local current = {}; | 139 local current = {}; |
| 139 local stack = {}; | 140 local stack = {}; |
| 140 local ch, peek; | 141 local ch, peek; |
| 141 local function next() | 142 local function next() |
| 142 ch = json:sub(pos, pos); | 143 ch = json:sub(pos, pos); |
| 144 if ch == "" then error("Unexpected EOF"); end | |
| 143 pos = pos+1; | 145 pos = pos+1; |
| 144 peek = json:sub(pos, pos); | 146 peek = json:sub(pos, pos); |
| 145 return ch; | 147 return ch; |
| 146 end | 148 end |
| 147 | 149 |