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) == '"')){
|
||||
element->measureLen = (*start) - element->measure;
|
||||
(*start)++;
|
||||
break;
|
||||
}
|
||||
(*start)++;
|
||||
|
@ -393,6 +394,7 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){
|
|||
while(*(*start)){
|
||||
if(unlikely(*(*start) == '"')){
|
||||
element->measureLen = (*start) - element->measure;
|
||||
(*start)++;
|
||||
break;
|
||||
}
|
||||
(*start)++;
|
||||
|
@ -406,9 +408,7 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){
|
|||
element->timestampLen = tmp - (*start);
|
||||
*start = tmp;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
}else{
|
||||
while(*(*start)){
|
||||
if(unlikely(*(*start) == ',' || *(*start) == '}' || (*(*start)) <= 32)){
|
||||
element->timestampLen = (*start) - element->timestamp;
|
||||
|
@ -416,6 +416,7 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){
|
|||
}
|
||||
(*start)++;
|
||||
}
|
||||
}
|
||||
}else if((*start)[1] == 'v'){
|
||||
(*start) += offset[index++];
|
||||
element->cols = *start;
|
||||
|
@ -425,8 +426,7 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){
|
|||
element->colsLen = tmp - (*start);
|
||||
*start = tmp;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}else{
|
||||
while(*(*start)){
|
||||
if(unlikely( *(*start) == ',' || *(*start) == '}' || (*(*start)) <= 32)){
|
||||
element->colsLen = (*start) - element->cols;
|
||||
|
@ -434,6 +434,7 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){
|
|||
}
|
||||
(*start)++;
|
||||
}
|
||||
}
|
||||
}else if((*start)[1] == 't' && (*start)[2] == 'a'){
|
||||
(*start) += offset[index++];
|
||||
element->tags = (*start);
|
||||
|
@ -442,7 +443,6 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){
|
|||
element->tagsLen = tmp - (*start);
|
||||
*start = tmp;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if(*(*start) == '}'){
|
||||
(*start)++;
|
||||
|
@ -1259,6 +1259,7 @@ int32_t smlParseJSON(SSmlHandle *info, char *payload) {
|
|||
if(info->dataFormat) {
|
||||
SSmlLineInfo element = {0};
|
||||
ret = smlParseJSONString(info, &dataPointStart, &element);
|
||||
if(element.measure == NULL) break;
|
||||
}else{
|
||||
if(cnt >= payloadNum){
|
||||
payloadNum = payloadNum << 1;
|
||||
|
@ -1269,6 +1270,7 @@ int32_t smlParseJSON(SSmlHandle *info, char *payload) {
|
|||
}
|
||||
}
|
||||
ret = smlParseJSONString(info, &dataPointStart, info->lines + cnt);
|
||||
if((info->lines + cnt)->measure == NULL) break;
|
||||
}
|
||||
if (unlikely(ret != TSDB_CODE_SUCCESS)) {
|
||||
uError("SML:0x%" PRIx64 " Invalid JSON Payload 1:%s", info->id, payload);
|
||||
|
|
Loading…
Reference in New Issue