fix:parse json error in schemaless
This commit is contained in:
parent
ba73ba9359
commit
1401aab1e8
|
@ -275,6 +275,7 @@ int smlJsonParseObjFirst(char **start, SSmlLineInfo *element, int8_t *offset){
|
||||||
}
|
}
|
||||||
if(unlikely(isInQuote && *(*start) == '"')){
|
if(unlikely(isInQuote && *(*start) == '"')){
|
||||||
element->measureLen = (*start) - element->measure;
|
element->measureLen = (*start) - element->measure;
|
||||||
|
(*start)++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
(*start)++;
|
(*start)++;
|
||||||
|
@ -393,6 +394,7 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){
|
||||||
while(*(*start)){
|
while(*(*start)){
|
||||||
if(unlikely(*(*start) == '"')){
|
if(unlikely(*(*start) == '"')){
|
||||||
element->measureLen = (*start) - element->measure;
|
element->measureLen = (*start) - element->measure;
|
||||||
|
(*start)++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
(*start)++;
|
(*start)++;
|
||||||
|
@ -406,15 +408,14 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){
|
||||||
element->timestampLen = tmp - (*start);
|
element->timestampLen = tmp - (*start);
|
||||||
*start = tmp;
|
*start = tmp;
|
||||||
}
|
}
|
||||||
continue;
|
}else{
|
||||||
}
|
while(*(*start)){
|
||||||
|
if(unlikely(*(*start) == ',' || *(*start) == '}' || (*(*start)) <= 32)){
|
||||||
while(*(*start)){
|
element->timestampLen = (*start) - element->timestamp;
|
||||||
if(unlikely(*(*start) == ',' || *(*start) == '}' || (*(*start)) <= 32)){
|
break;
|
||||||
element->timestampLen = (*start) - element->timestamp;
|
}
|
||||||
break;
|
(*start)++;
|
||||||
}
|
}
|
||||||
(*start)++;
|
|
||||||
}
|
}
|
||||||
}else if((*start)[1] == 'v'){
|
}else if((*start)[1] == 'v'){
|
||||||
(*start) += offset[index++];
|
(*start) += offset[index++];
|
||||||
|
@ -425,14 +426,14 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){
|
||||||
element->colsLen = tmp - (*start);
|
element->colsLen = tmp - (*start);
|
||||||
*start = tmp;
|
*start = tmp;
|
||||||
}
|
}
|
||||||
continue;
|
}else{
|
||||||
}
|
while(*(*start)){
|
||||||
while(*(*start)){
|
if(unlikely( *(*start) == ',' || *(*start) == '}' || (*(*start)) <= 32)){
|
||||||
if(unlikely( *(*start) == ',' || *(*start) == '}' || (*(*start)) <= 32)){
|
element->colsLen = (*start) - element->cols;
|
||||||
element->colsLen = (*start) - element->cols;
|
break;
|
||||||
break;
|
}
|
||||||
|
(*start)++;
|
||||||
}
|
}
|
||||||
(*start)++;
|
|
||||||
}
|
}
|
||||||
}else if((*start)[1] == 't' && (*start)[2] == 'a'){
|
}else if((*start)[1] == 't' && (*start)[2] == 'a'){
|
||||||
(*start) += offset[index++];
|
(*start) += offset[index++];
|
||||||
|
@ -442,7 +443,6 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){
|
||||||
element->tagsLen = tmp - (*start);
|
element->tagsLen = tmp - (*start);
|
||||||
*start = tmp;
|
*start = tmp;
|
||||||
}
|
}
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
if(*(*start) == '}'){
|
if(*(*start) == '}'){
|
||||||
(*start)++;
|
(*start)++;
|
||||||
|
@ -1259,6 +1259,7 @@ int32_t smlParseJSON(SSmlHandle *info, char *payload) {
|
||||||
if(info->dataFormat) {
|
if(info->dataFormat) {
|
||||||
SSmlLineInfo element = {0};
|
SSmlLineInfo element = {0};
|
||||||
ret = smlParseJSONString(info, &dataPointStart, &element);
|
ret = smlParseJSONString(info, &dataPointStart, &element);
|
||||||
|
if(element.measure == NULL) break;
|
||||||
}else{
|
}else{
|
||||||
if(cnt >= payloadNum){
|
if(cnt >= payloadNum){
|
||||||
payloadNum = payloadNum << 1;
|
payloadNum = payloadNum << 1;
|
||||||
|
@ -1269,6 +1270,7 @@ int32_t smlParseJSON(SSmlHandle *info, char *payload) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ret = smlParseJSONString(info, &dataPointStart, info->lines + cnt);
|
ret = smlParseJSONString(info, &dataPointStart, info->lines + cnt);
|
||||||
|
if((info->lines + cnt)->measure == NULL) break;
|
||||||
}
|
}
|
||||||
if (unlikely(ret != TSDB_CODE_SUCCESS)) {
|
if (unlikely(ret != TSDB_CODE_SUCCESS)) {
|
||||||
uError("SML:0x%" PRIx64 " Invalid JSON Payload 1:%s", info->id, payload);
|
uError("SML:0x%" PRIx64 " Invalid JSON Payload 1:%s", info->id, payload);
|
||||||
|
|
Loading…
Reference in New Issue