# json-devil **Repository Path**: finntenzor/json-devil ## Basic Information - **Project Name**: json-devil - **Description**: 这是一个恶魔般的JSON题目 - **Primary Language**: C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-02-25 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 我是谁,我在哪,我要干嘛? 这是一个魔鬼题,你的任务是将魔物语转换为JSON。 (如果有自信还可以挑战讲JSON转换回魔物语) ## 什么是JSON? 点击链接查看相关资料: * [百度百科](https://baike.baidu.com/item/JSON) * [官方描述]([https://www.cnblogs.com/kuikui/p/3176806.html](http://www.json.org/json-zh.html)) * [CSDN博客](https://www.cnblogs.com/kuikui/p/3176806.html) * [W3school](http://www.w3school.com.cn/json/json_syntax.asp) 以上可以用于广泛地、较为深入的学习了解JSON,针对本问题,下面还给出了只在本问题中需要的JSON相关知识: * [什么是JSON](json.md) ## 我要干嘛? 请看题目任务描述: * [任务描述](task.md) ## 我真的不会写啊 你可以点击下面的链接查看示例代码,但强烈建议你先自己思考。这个题目并 __不占最终考试成绩__ ,即使写不出来你也没有任何损失。但是 __你应当先自己努力思考,为自己学习__ ,这个过程很能锻炼自己。 * [标识符转JSON](src/toJson.c) (代码约120行,其余均为注释) * [JSON转标识符](src/fromJson.c) (代码约300行,几乎没有注释) ## 提示 1. 这个问题主要考察对于函数、调用(及调用栈)、递归等概念的深入理解。你必须非常清楚地理解:什么是函数、什么是函数的参数、什么是调用、什么是调用栈、调用的参数存放在调用栈中,各级调用参数相互独立、什么是递归等知识点。 2. 有关调用栈的资料(涉及汇编的部分可以略读或者跳过)(其他语言原理也是一样,也可以阅读) 1. [资料1](https://blog.csdn.net/VarusK/article/details/83031643) 2. [资料2](https://blog.csdn.net/hansionz/article/details/80871935) 3. [资料3](https://www.baidu.com/s?wd=调用栈%20简单理解) 4. [资料4](https://www.baidu.com/s?wd=图解调用栈) 3. 总之这个问题中只出现4种类型:整数、字符串、对象、数组。 4. 每一个数据要么在对象中,要么不在对象中。 5. 如果一个数据在根元素位置(也就是最外面那个)或者在数组中,那么它一定不在对象中,它的标记符后没有键名。 6. 如果一个元素在对象中,那么它的标记符后面一定有键名。