aboutsummaryrefslogtreecommitdiff
path: root/src/json.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/json.c')
-rw-r--r--src/json.c28
1 files changed, 15 insertions, 13 deletions
diff --git a/src/json.c b/src/json.c
index 25aa186e9..850f2bbf4 100644
--- a/src/json.c
+++ b/src/json.c
@@ -910,13 +910,7 @@ static void jsonRenderNodeAsText(
case JSON_STRING: {
assert( pNode->eU==1 );
if( pNode->jnFlags & JNODE_RAW ){
- if( pNode->jnFlags & JNODE_LABEL ){
- jsonAppendChar(pOut, '"');
- jsonAppendRaw(pOut, pNode->u.zJContent, pNode->n);
- jsonAppendChar(pOut, '"');
- }else{
- jsonAppendString(pOut, pNode->u.zJContent, pNode->n);
- }
+ jsonAppendString(pOut, pNode->u.zJContent, pNode->n);
}else if( pNode->jnFlags & JNODE_JSON5 ){
jsonAppendNormalizedString(pOut, pNode->u.zJContent, pNode->n);
}else{
@@ -1564,7 +1558,7 @@ json_parse_restart:
){
k++;
}
- jsonParseAddNode(pParse, JSON_STRING | (JNODE_RAW<<8), k-j, &z[j]);
+ jsonParseAddNode(pParse, JSON_STRING, k-j, &z[j]);
pParse->hasNonstd = 1;
x = k;
}else{
@@ -3373,6 +3367,10 @@ static u32 jsonRenderBlob(
jsonAppendChar(pOut, '"');
break;
}
+ case JSONB_TEXTRAW: {
+ jsonAppendString(pOut, (const char*)&pParse->aBlob[i+n], sz);
+ break;
+ }
case JSONB_ARRAY: {
jsonAppendChar(pOut, '[');
j = i+n;
@@ -3481,10 +3479,14 @@ static int jsonParseValueFromBlob(JsonParse *pParse, u32 i){
jsonParseAddNode(pParse, JSON_REAL | (JNODE_JSON5<<8), sz, zPayload);
break;
}
- case JSONB_TEXT: {
+ case JSONB_TEXTRAW: {
jsonParseAddNode(pParse, JSON_STRING | (JNODE_RAW<<8), sz, zPayload);
break;
}
+ case JSONB_TEXT: {
+ jsonParseAddNode(pParse, JSON_STRING, sz, zPayload);
+ break;
+ }
case JSONB_TEXTJ: {
jsonParseAddNode(pParse, JSON_STRING | (JNODE_ESCAPE<<8), sz, zPayload);
break;
@@ -3495,10 +3497,6 @@ static int jsonParseValueFromBlob(JsonParse *pParse, u32 i){
sz, zPayload);
break;
}
- case JSONB_TEXTRAW: {
- jsonParseAddNode(pParse, JSON_STRING | (JNODE_RAW<<8), sz, zPayload);
- break;
- }
case JSONB_ARRAY: {
int iThis = jsonParseAddNode(pParse, JSON_ARRAY, 0, 0);
u32 j = i+x;
@@ -3529,6 +3527,10 @@ static int jsonParseValueFromBlob(JsonParse *pParse, u32 i){
if( k&1 ) return -1;
break;
}
+ default: {
+ pParse->nErr++;
+ break;
+ }
}
return i+x+sz;
}