This repository has been archived by the owner. It is now read-only.

Jim/jsonset #22

Merged
merged 6 commits into from Sep 29, 2015

Conversation

Projects
None yet
2 participants
@appurist
Member

appurist commented Sep 29, 2015

Some major updates to the LSL JSON functions to more fully implement the remaining functions. The first 5 sections of the LL JSON test cases all pass, with the non-consequential exception of "2.5" vs "2.50000" in the JSON produced in llList2Json.

Some testcases still fail; remaining issues are support for the escape character in strings (e.g. especially escaped quotes: "), and the '[' and ']' characters in strings case the last section of testcases to have issues. Some other cases of not failing some numeric constants that LL tests consider invalid, such as "-0".

appurist added some commits Sep 26, 2015

Several fixes to llJsonSetValue which did not work at all previously.
Initial functionality working in normal cases. More fixes to come for
edge cases.
Fixes to range detection, error detection and handling in JSON functi…
…ons.

Fix to error detection and handling in llJsonGetValue and DetectJson
(common).
Fix range checking in JsonGetSpecific (llJsonGetValue and
llJsonGetValue) and llList2Json.
Fixed another JSON error detection case.
Led to a null reference exception.
Several more JSON fixes, boolean and real values returned by llJsonGe…
…tValue, and several llJsonSetValue assignments.

More of the LL JSON testcases pass with this, but many edge cases and
replacing one type with another do not. Work in progress.
Fixed problems with JSON item replacement, implemented JSON_DELETE, o…
…ther test cases.

- Fixed problems with JSON updates replacing whole node tree sections.
- Implemented JSON_DELETE.
- Fixed some testcases that should have returned JSON_INVALID.
- First 79 LL JSON tests pass.  Work in progress. (179 passes, 140
fails)
Fixed many issues with llJson2List. Full SL compatibility now.
The first 4 sections of the LL JSON testcases all pass. This update
fixes llJson2List cases. The first fix is "" being passed as the JSON
text.  Also fixes non-array/non-object cases such as "test" to return
["test"].  ParseJsonNode is now JsonNode2List and returns the LSL_List.
JSON boolean are now returned instead of 0 and 1. Instead of calling
ParseJsonNode recursively from the top level, it now calls
JsonNode2ListElement, passing whether it's nested or not (not, in the
case where it's called from the top level).  JsonNode2ListElement is new
code that sometimes treats the elements as strings, when called from a
"deep" (nested) object.  It also wraps the string text "{", "}", "[" and
"]" as appropriate for objects and arrays.

ddaeschler added a commit that referenced this pull request Sep 29, 2015

@ddaeschler ddaeschler merged commit 840bc5c into master Sep 29, 2015

@ddaeschler ddaeschler deleted the jim/jsonset branch Sep 29, 2015

appurist added a commit that referenced this pull request Dec 6, 2017

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.