key1:value1
key2:value2,value3,value4
key3:value5,value6,
value7,value8 [同一个 key 的 value 多行]
body [多行]
格式大概是这样的,有什么解析的好思路吗,按行读取然后判断好难写
1
delectate 2021-01-02 22:05:40 +08:00
格式化为 json 吧。
|
2
qq292382270 2021-01-02 22:14:47 +08:00
数组=按行分割(全部文本)
循环数组,每行判断是否有符号: 有的话,符号:左边是 key,右边是 value(value 按符号,分割) 没有的话,代表这行全是 value(按符号,分割,归于上一个 key) |
3
ysc3839 2021-01-02 22:39:12 +08:00 via Android
body 的内容呢?空的?
|
4
lululau 2021-01-02 23:38:35 +08:00 via iPhone
body 是个什么鬼,和 kv pairs 是个什么关系?能不能好好提问
|
5
xiangyuecn 2021-01-02 23:43:41 +08:00
邮件头 解析,也会存在第四行这种 被切成好几段的
关键在于第一个连续的两个换行符,是区分头和 body 的,这个规则跑不了 |
6
xupefei 2021-01-02 23:55:32 +08:00 2
写个简单的自动机就行了,在 value 状态下忽略空格和单换行
|
7
iseki 2021-01-03 01:30:15 +08:00 via Android
建议描述成 BNF (然后你就不用问了(
|
8
treblex 2021-01-03 08:31:59 +08:00 via iPhone
是 http 请求的格式吗
|
9
nerocc 2021-01-03 08:38:11 +08:00 via Android
写个简单的 lexer 呗
|
10
weyou 2021-01-03 10:31:54 +08:00 via Android
有点像 mime 邮件格式
|
11
raaaaaar 2021-01-03 11:43:23 +08:00 via Android
你先说这是什么格式。。
|
12
learningman 2021-01-03 11:51:02 +08:00 via Android
找换行符,找:不就好了
|
13
DOLLOR 2021-01-03 12:01:56 +08:00 via Android
太像 http 报文了,就当 http 报文解析吧。
|
14
Joker123456789 2021-01-06 15:29:24 +08:00
建议约束一下,value 不要换行,不然很蛋疼。
然后解析的时候可以 逐行读取,每行根据冒号分隔即可 拿到 key 和 value, 读到两个换行符的时候 就说明头读完了。 然后转到解析的 body 的算法,继续往下读就好了 |