mirror of
https://github.com/sqlite/sqlite.git
synced 2025-11-11 01:42:22 +03:00
Allow the labels on JSON objects to be unquoted identifier names.
FossilOrigin-Name: fb428db3f64f148ab9a3478fdcc8b3733e58102b3c8895a482e2551d974d5661
This commit is contained in:
16
src/json.c
16
src/json.c
@@ -1059,13 +1059,25 @@ json_parse_restart:
|
||||
if( ++pParse->iDepth > JSON_MAX_DEPTH ) return -1;
|
||||
x = jsonParseValue(pParse, j);
|
||||
if( x<=0 ){
|
||||
pParse->iDepth--;
|
||||
if( x==(-2) ){
|
||||
j = pParse->iErr;
|
||||
if( pParse->nNode!=(u32)iThis+1 ) pParse->has5 = 1;
|
||||
pParse->iDepth--;
|
||||
break;
|
||||
}
|
||||
return -1;
|
||||
j += json5Whitespace(&z[j]);
|
||||
if( sqlite3Isalpha(z[j]) || z[j]=='_' || z[j]=='$' ){
|
||||
int k;
|
||||
for(k=j+1; sqlite3Isalnum(z[k]) || z[k]=='_' || z[k]=='$'; k++){}
|
||||
jsonParseAddNode(pParse, JSON_STRING, k-j, &z[j]);
|
||||
if( !pParse->oom ){
|
||||
pParse->aNode[pParse->nNode-1].jnFlags = JNODE_RAW;
|
||||
}
|
||||
pParse->has5 = 1;
|
||||
x = k;
|
||||
}else{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if( pParse->oom ) return -1;
|
||||
pNode = &pParse->aNode[pParse->nNode-1];
|
||||
|
||||
Reference in New Issue
Block a user