Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
e60ce6ce
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
e60ce6ce
编写于
2月 07, 2023
作者:
H
Haojun Liao
提交者:
GitHub
2月 07, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #19820 from taosdata/fix/TD-22253
fix:parse json error in schemaless
上级
cdd7d07e
40d6e9d6
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
20 addition
and
18 deletion
+20
-18
source/client/src/clientSmlJson.c
source/client/src/clientSmlJson.c
+20
-18
未找到文件。
source/client/src/clientSmlJson.c
浏览文件 @
e60ce6ce
...
...
@@ -256,7 +256,7 @@ int smlJsonParseObjFirst(char **start, SSmlLineInfo *element, int8_t *offset){
if
(
unlikely
(
index
>=
OTD_JSON_FIELDS_NUM
))
{
uError
(
"index >= %d, %s"
,
OTD_JSON_FIELDS_NUM
,
*
start
)
break
;
return
-
1
;
}
char
*
sTmp
=
*
start
;
...
...
@@ -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
)
++
;
...
...
@@ -384,7 +385,7 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){
if
(
unlikely
(
index
>=
OTD_JSON_FIELDS_NUM
))
{
uError
(
"index >= %d, %s"
,
OTD_JSON_FIELDS_NUM
,
*
start
)
break
;
return
-
1
;
}
if
((
*
start
)[
1
]
==
'm'
){
...
...
@@ -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,15 +408,14 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){
element
->
timestampLen
=
tmp
-
(
*
start
);
*
start
=
tmp
;
}
continue
;
}
while
(
*
(
*
start
)){
if
(
unlikely
(
*
(
*
start
)
==
','
||
*
(
*
start
)
==
'}'
||
(
*
(
*
start
))
<=
32
)){
element
->
timestampLen
=
(
*
start
)
-
element
->
timestamp
;
break
;
}
else
{
while
(
*
(
*
start
)){
if
(
unlikely
(
*
(
*
start
)
==
','
||
*
(
*
start
)
==
'}'
||
(
*
(
*
start
))
<=
32
)){
element
->
timestampLen
=
(
*
start
)
-
element
->
timestamp
;
break
;
}
(
*
start
)
++
;
}
(
*
start
)
++
;
}
}
else
if
((
*
start
)[
1
]
==
'v'
){
(
*
start
)
+=
offset
[
index
++
];
...
...
@@ -425,14 +426,14 @@ int smlJsonParseObj(char **start, SSmlLineInfo *element, int8_t *offset){
element
->
colsLen
=
tmp
-
(
*
start
);
*
start
=
tmp
;
}
continue
;
}
while
(
*
(
*
start
)){
if
(
unlikely
(
*
(
*
start
)
==
','
||
*
(
*
start
)
==
'}'
||
(
*
(
*
start
))
<=
32
)){
element
->
colsLen
=
(
*
start
)
-
element
->
cols
;
break
;
}
else
{
while
(
*
(
*
start
)){
if
(
unlikely
(
*
(
*
start
)
==
','
||
*
(
*
start
)
==
'}'
||
(
*
(
*
start
))
<=
32
)){
element
->
colsLen
=
(
*
start
)
-
element
->
cols
;
break
;
}
(
*
start
)
++
;
}
(
*
start
)
++
;
}
}
else
if
((
*
start
)[
1
]
==
't'
&&
(
*
start
)[
2
]
==
'a'
){
(
*
start
)
+=
offset
[
index
++
];
...
...
@@ -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
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录