JsonObject 在某个位置出现意外标记

JsonObject unexpected token at a certain position

希望你一切顺利。我正在开发一个项目,我需要将许多变量上传到 Google 电子表格,对于我正在使用的 IFTTT,它只允许我上传事件名称和上传日期之外的 3 个值。

所以,我发现要将更多值上传到我的 Google Sheet,我只需要三个值中的两个,因为我将上传所有用逗号分隔的变量在为“值 1”保留的插槽中,以及一个 Google Sheet/Excel 命令在将它们上传到“值 2”后将它们分隔在许多单元格中。

我在 IFTTT 的 WebHooks 文档页面中尝试了一个这样的例子,它成功了,当我在 Arduino IDE 中创建 jsonObject 时,问题就来了,因为代码符合要求并上传到我的 ESP8266,但是在串行监视器中,显示以下错误。

14:19:37.419 -> Connecting to maker.ifttt.com 14:19:37.606 -> Request resource: /trigger/my_file_name/with/key/my_key 14:19:37.606 -> {"value1":"0,0,0,0,0,0","value2":"=SPLIT(INDICE(1:2000; FILA();(COLUMNA()-1));",")"} 14:19:38.290 -> HTTP/1.1 400 Bad Request 14:19:38.290 -> Date: Sun, 26 Sep 2021 18:19:36 GMT 14:19:38.290 -> Content-Type: application/json; charset=utf-8 14:19:38.290 -> Content-Length: 68 14:19:38.290 -> Connection: close 14:19:38.290 -> X-Powered-By: Express 14:19:38.290 -> ETag: W/"44-aUxYR3gnF4RvNYXG8uY3kJzvmM0" 14:19:38.290 -> 14:19:38.290 -> {"errors":[{"message":"Unexpected token } in JSON at position 83"}]}Reboot: 14:19:47.425 ->

似乎是语法问题,我尝试更改(和删除)“{”、“}”等字符,但问题仍然存在,可能是什么原因造成的?

创建 jsonOject 的代码是这样的:

   int test_value = 1;
   int t1 = test_value*1;
   int t2 = test_value*2;
   int t3 = test_value*3;
   int t4 = test_value*4;
   int t5 = test_value*5;
   int t6 = test_value*6;

   String sgs = "=SPLIT(INDICE(1:2000; FILA();(COLUMNA()-1));\",\")";
   
   String jsonObject = String("{\"value1\":\"") + t1 + "," + t2 + "," + t3 + "," + t4 + "," + t5 + "," + t6 + "\",\"value2\":\"" + sgs + "\"}";
   Serial.println(jsonObject);

我会感谢你给我的任何建议或建议!

你的json应该写成

{"value1":"0,0,0,0,0,0","value2":"=SPLIT(INDICE(1:2000; FILA();(COLUMNA()-1));\",\")"}

带有额外的反斜杠。但要小心,有时反斜杠会在中间转换时消失,必须加倍才能避免这种情况。

所以,替换为

String sgs = "=SPLIT(INDICE(1:2000; FILA();(COLUMNA()-1));\\",\\")";