首页 > 系统相关 >在Ubuntu中编译含有JSON的文件出现报错

在Ubuntu中编译含有JSON的文件出现报错

时间:2024-09-15 16:58:06浏览次数:3  
标签:missing Ubuntu character json JSON terminating 报错 error test

 

         在ubuntu中进行JSON相关学习的时候,我发现了一些小问题,决定与大家进行分享,减少踩坑时候出现不必要的时间耗费

截取部分含有JSON部分的代码进行展示

char *str = "
				{  
				\"title\":\"JSON Example\",  
				\"author\": {  
				\"name\":\"John Doe\",  
				\"age\": 35,  
				\"isVerified\":true  
				},  
				\"tags\":[\"json\", \"syntax\", \"example\"],  
				\"rating\": 4.5,  
				\"isPublished\":false,  
				\"comments\": null  
				}";

按照JSON格式,在引号前边都需要加上 \ 反斜杠

其余部分的代码与本次的错误分享无关,暂不截图

        打开终端执行 gcc -o json_test json_test.c 命令对本测试代码进行编译

以下为在编译过程中出现的报错,

可以发现报错的部分非常的多,而且都明显的指向 \ 反斜杠这一 方面的错误

以下为全部的报错

json_test.c: In function ‘main’:
json_test.c:6:14: error: stray ‘\’ in program
  char *str = \"
              ^
json_test.c:6:15: warning: missing terminating " character
  char *str = \"
               ^
json_test.c:6:15: error: missing terminating " character
json_test.c:8:5: error: stray ‘\’ in program
     \"title\":\"JSON Example\",
     ^
json_test.c:8:6: warning: missing terminating " character
     \"title\":\"JSON Example\",
      ^
json_test.c:8:6: error: missing terminating " character
     \"title\":\"JSON Example\",
      ^~~~~~~~~~~~~~~~~~~~~~~~~~  
json_test.c:9:5: error: stray ‘\’ in program
     \"author\": {
     ^
json_test.c:9:6: warning: missing terminating " character
     \"author\": {
      ^
json_test.c:9:6: error: missing terminating " character
     \"author\": {
      ^~~~~~~~~~~~  
json_test.c:10:5: error: stray ‘\’ in program
     \"name\":\"John Doe\",
     ^
json_test.c:10:6: warning: missing terminating " character
     \"name\":\"John Doe\",
      ^
json_test.c:10:6: error: missing terminating " character
     \"name\":\"John Doe\",
      ^~~~~~~~~~~~~~~~~~~~~  
json_test.c:11:5: error: stray ‘\’ in program
     \"age\": 35,
     ^
json_test.c:11:6: warning: missing terminating " character
     \"age\": 35,
      ^
json_test.c:11:6: error: missing terminating " character
     \"age\": 35,
      ^~~~~~~~~~~  
json_test.c:12:5: error: stray ‘\’ in program
     \"isVerified\":true
     ^
json_test.c:12:6: warning: missing terminating " character
     \"isVerified\":true
      ^
json_test.c:12:6: error: missing terminating " character
     \"isVerified\":true
      ^~~~~~~~~~~~~~~~~~  
json_test.c:7:5: error: empty scalar initializer
     {
     ^
json_test.c:7:5: note: (near initialization for ‘str’)
json_test.c:14:5: error: stray ‘\’ in program
     \"tags\":[\"json\", \"syntax\", \"example\"],
     ^
json_test.c:14:6: warning: missing terminating " character
     \"tags\":[\"json\", \"syntax\", \"example\"],
      ^
json_test.c:14:6: error: missing terminating " character
     \"tags\":[\"json\", \"syntax\", \"example\"],
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  
json_test.c:15:5: error: stray ‘\’ in program
     \"rating\": 4.5,
     ^
json_test.c:15:6: warning: missing terminating " character
     \"rating\": 4.5,
      ^
json_test.c:15:6: error: missing terminating " character
     \"rating\": 4.5,
      ^~~~~~~~~~~~~~~  
json_test.c:16:5: error: stray ‘\’ in program
     \"isPublished\":false,
     ^
json_test.c:16:6: warning: missing terminating " character
     \"isPublished\":false,
      ^
json_test.c:16:6: error: missing terminating " character
     \"isPublished\":false,
      ^~~~~~~~~~~~~~~~~~~~~  
json_test.c:17:5: error: stray ‘\’ in program
     \"comments\": null
     ^
json_test.c:17:6: warning: missing terminating " character
     \"comments\": null
      ^
json_test.c:17:6: error: missing terminating " character
     \"comments\": null
      ^~~~~~~~~~~~~~~~~  
json_test.c:18:5: error: expected identifier or ‘(’ before ‘}’ token
     }\";
     ^
json_test.c:18:6: error: stray ‘\’ in program
     }\";
      ^
json_test.c:18:7: warning: missing terminating " character
     }\";
       ^
json_test.c:18:7: error: missing terminating " character
     }\";
       ^~

对于这个问题的解决其实不难,只需要在每一行的后边加上连词符号 \ 即可,将多行拼成1行 

 代码做出修改后如下:

char *str = "\
				{  \
				\"title\":\"JSON Example\",\ 
				\"author\": {  \
							\"name\":\"John Doe\",\
							\"age\": 35,\
							\"isVerified\":true\
							}, \
				\"tags\":[\"json\", \"syntax\", \"example\"],\ 
				\"rating\": 4.5,\
				\"isPublished\":false,\
				\"comments\": null\
				}";

再次对其进行编译,之前的报错基本消失   

但是,我们发现了另外一个警告错误

json_test.c: In function ‘main’:
json_test.c:8:32: warning: backslash and newline separated by space
     \"title\":\"JSON Example\",\
                                 
json_test.c:14:51: warning: backslash and newline separated by space
     \"tags\":[\"json\", \"syntax\", \"example\"], \
                                                    
/tmp/ccFimHV4.o: In function `main':
json_test.c:(.text+0x22): undefined reference to `cJSON_Parse'
json_test.c:(.text+0x39): undefined reference to `cJSON_GetObjectItem'
collect2: error: ld returned 1 exit status

        同时回到text editor代码中,发现代码中反斜杠居然会出现两种颜色

这个现象很有意思,一开始并没有注意这是为什么,后边结合警告

在这几个颜色不同的反斜杠之间瞎点,发现一个小问题

这些不同于大众的颜色的反斜杠,后边带有空格,其他的没有

尝试着将后边的空格去掉之后,再次进行编译,前边的警告错误荡然无存

标签:missing,Ubuntu,character,json,JSON,terminating,报错,error,test
From: https://blog.csdn.net/weixin_74859061/article/details/142259403

相关文章

  • Ubuntu 22.04.5 LTS 发布下载 - 现代化的企业与开源 Linux
    Ubuntu22.04.5LTS(JammyJellyfish)-现代化的企业与开源LinuxUbuntu22.04.5发布,配备Linux内核6.8请访问原文链接:https://sysin.org/blog/ubuntu-2204/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCanonical发布了Ubuntu22.04.5LTS,作为Ubuntu22.0......
  • 蓝易云服务器 - ubuntu docker日志docker ubuntu desktop
    在Ubuntu桌面上使用Docker时,可以通过以下步骤查看Docker容器的日志:打开终端:在Ubuntu桌面上按下 Ctrl+Alt+T组合键可以打开终端。查看容器ID:运行以下命令查看正在运行的Docker容器的ID。dockerps查看容器日志:使用以下命令查看指定容器的日志,将 CONTAINER_ID替换为你想查看日......
  • 蓝易云服务器 - Ubuntu16.04安装VSCode教程
    安装VSCode的教程如下:打开终端,运行以下命令更新软件包列表:sudoaptupdate安装依赖库:sudoaptinstallsoftware-properties-commonapt-transport-httpswget导入MicrosoftGPG密钥:wget-qhttps://packages.microsoft.com/keys/microsoft.asc-O-|sudoapt-keyadd-添加Visual......
  • cJSON-轻量级解析模块、字符串的神——编织STM32C8T6与阿里云信息传递的纽带
            编写方向:本人就不泛泛的编写一篇什么一文学会cJSON了,没什么突出点,也就我水水字数,你们看来看去也不懂,本人是从上阿里云传信息接触的cJSON的,我就此写一篇针对性的文章,希望对大家有用,后期我在其他方面用到还会继续更新。一、简介        cJSON是一个用C......
  • 蓝易云服务器 - ubuntu安装开发javascript ubuntu script教程
    在Ubuntu上安装开发JavaScript的教程如下:打开终端。安装Node.js:运行以下命令安装Node.js。sudoaptupdatesudoaptinstallnodejs安装npm:npm是Node.js的包管理器,运行以下命令安装npm。sudoaptinstallnpm验证安装:通过运行以下命令验证Node.js和npm是否安装成功。node-vnpm-......
  • Ubuntu 20.04 解决 NVIDIA-SMI 出错问题
    目录一、初始问题二、解决方法2.1法一2.2法二三、新的问题3.1解决方案3.2进一步解决3.3最后解决一、初始问题       今天要在本机上装个环境时,运行了一下nvidia-smi突然遇到一个问题:FailedtoinitializeNVML:Driver/libraryversionmismatch......
  • nlohmann/json安装与使用
    介绍nlohmann/json是一个用于处理JSON数据的C++库,提供了简单而强大的JSON解析和生成功能。以其简洁易用、功能强大而受到广泛欢迎。优点简单易用:使用现代C++特性,如自动类型推断和范围for循环,简化了JSON的创建、访问和操作。与标准库兼容:它与C++标准......
  • 安装vCenter VCSA 7.0 报错 Failed to run vdcpromo 的问题
    百度了一下说是DNS的问题,但我也设置了8.8.8.8或电信的dns,都不行。外网找了一下说要设置为127.0.0.1,但是7.0U3a后的版本不允许填写127.0.0.1了。最后找到一个通过CLI的方式安装可以避免这个问题。首先创建一个CLI的横版文件,内容如下:{"__version":"2.13.0","__comments......
  • 微信小程序报错request:fail -107:net::ERR_SSL_PROTOCOL_ERROR
            最近打算上线一个微信小程序,然后在本地运行,访问后端服务器正常,但是上线服务器后却发现小程序不能连接后端服务器,于是我用微信开发工具真机调试后发现,提示是ssl证书问题,我在本地调试时勾选了不校验合法域名,导致我本地上运行正常        后面我勾选了......
  • 【关于c++模版类的报错问题】
    关于c++模版类的报错问题模版类的定义使用类模板模版类的定义通常在实现一个类时,会在.h头文件中声明函数,在.cpp文件中实现该函数。然而如果是模版类的话情况则会稍有不同。这是一个名为debug.h的头文件,里面包含了一个名为A的模版类类A的实现在debug.hpp中,模板类的......