RawJSON (.json)
背景
-
- MIME 类型:application/json.
- 数据互换格式.
- RawJSON 支持 JSON 的完整语法,但使用其特有的解释
- RawJSON 使用 Wolfram 语言的相关功能来识别 JSON 对象.
- JSON 常用于网络编程.
- JSON 源自 JavaScript 对象表示法(Object Notation)的缩写.
- JSON 是基于 JavaScript 程序语言的一个子集.
- 纯文本格式.
- JSON 开发于2001年.
- JSON 被发布为 RFC 4627.
Import 与 Export
- Import["file","RawJSON"] 以嵌套列表和关联关系组合的形式导入 JSON 文件.
- ImportString["string","RawJSON"] 导入一个 JSON 字符串.
- Export["file",expr,"RawJSON"] 将嵌套列表和关联关系组合导出至一个 JSON 文件.
- ExportString[expr,"RawJSON"] 导出至一个 JSON 字符串.
- 请到以下参考页面了解完整的基本信息:
-
Import, Export 从文件导入或导出到文件 CloudImport, CloudExport 从云对象导入或导出到云对象 ImportString, ExportString 从字符串导入或导出到字符串 ImportByteArray, ExportByteArray 从字节数组导入或导出到字节数组
参数
- Import 的通用参数:
-
"Elements" 该文件可用的参数和选项列表 "Summary" 文件摘要 "Rules" 所有可用参数的规则列表 - 表示数据的参数:
-
"Data" 包括嵌套列表或关联关系的 JSON 文件的内容 "Dataset" 包括作为 Dataset 的 JSON 文件 - 默认情况下,Import 使用"Data"参数.
- "RawJSON" 格式使用 Wolfram 语言中形式为 <|"field1"->value1,"field2"->value2,…|> 的关联关系来识别形式为 {field1:value1,field2:value2,…} 的 JSON 对象.
- "RawJSON" 使用 Wolfram 语言列表{e1,e2,…}来识别 JSON 列表[e1,e2,…].
- Wolfram 语言中的字符串在 RawJSON 中表示为 UTF-8 字符串,根据 JSON 标准要求转义.
- 在 RawJSON 中,科学计数法表示的数字都使用 E(指数)表示法.
- 在 RawJSON 中,True 和 False 这两个符号使用 true 和 false 两个值表示.
- 在 RawJSON 中,Null 使用 null 值表示.
范例
打开所有单元 关闭所有单元基本范例 (8)
ImportString["[1,2,3]", "JSON"]"{\"x\":1, \"y\":2, \"z\":3}"ImportString[%, "RawJSON"]Import["http://en.wikipedia.org/w/api.php?action=query&prop=links&titles=Wolfram%20Language&continue=&format=json", "RawJSON"]ExportString[{1, 2, 3}, "RawJSON", "Compact" -> True]ExportString[<|"x" -> 1, "y" -> 2, "z" -> 3|>, "RawJSON", "Compact" -> True]Export["elements.json", <|"Hydrogen" -> <|"AtomicNumber" -> 1, "AtomicWeight" -> 1.00793|>, "Helium" -> <|"AtomicNumber" -> 4.00259, "AtomicWeight" -> 2|>, "Lithium" -> <|"AtomicNumber" -> 3, "AtomicWeight" -> 6.94141|>, "Beryllium" -> <|"AtomicNumber" -> 4, "AtomicWeight" -> 9.01218|>, "Boron" -> <|"AtomicNumber" -> 5, "AtomicWeight" -> 10.8086|>, "Carbon" -> <|"AtomicNumber" -> "6", "AtomicWeight" -> 12.0107|>|>, "RawJSON"]ExportString[<|"Hydrogen" -> <|"AtomicNumber" -> 1, "AtomicWeight" -> 1.00793|>, "Helium" -> <|"AtomicNumber" -> 4.00259, "AtomicWeight" -> 2|>, "Lithium" -> <|"AtomicNumber" -> 3, "AtomicWeight" -> 6.94141|>, "Beryllium" -> <|"AtomicNumber" -> 4, "AtomicWeight" -> 9.01218|>, "Boron" -> <|"AtomicNumber" -> 5, "AtomicWeight" -> 10.8086|>, "Carbon" -> <|"AtomicNumber" -> "6", "AtomicWeight" -> 12.0107|>|>, "RawJSON"]ExportString[
{<|"day" -> Yesterday, "T" -> "24.4"|>,
<|"day" -> Now, "T" -> "23.1"|>},
"RawJSON" , "ConversionFunction" -> (DateString[#, {"ISODateTime", "ISOTimeZone"}]&)]使用对话规则(conversion rules)来转换规则和数量:
ExportString[<|"files" -> {"file1" -> Quantity["1.2", "Kilobytes"], "file2" -> Quantity["5.7", "Megabytes"]}|>, "RawJSON", "ConversionRules" -> {
Rule[file_, size_] :> <|"file" -> file, "size" -> size|>, Quantity[magnitude_, unit_] :> <|"magnitude" -> magnitude, "unit" -> unit|>}]ExportString[<|"x" -> {{1, 2}, {3, 4}}, "y" -> {{Null}}|>, "RawJSON", "Compact" -> 1]范围 (1)
ExportString[{"Hydrogen" -> {"AtomicNumber" -> 1, "AtomicWeight" -> 1.00793}, "Helium" -> {"AtomicNumber" -> 4.00259, "AtomicWeight" -> 2}, "Lithium" -> {"AtomicNumber" -> 3, "AtomicWeight" -> 6.94141}, "Beryllium" -> {"AtomicNumber" -> 4, "AtomicWeight" -> 9.01218}, "Boron" -> {"AtomicNumber" -> 5, "AtomicWeight" -> 10.8086}, "Carbon" -> {"AtomicNumber" -> "6", "AtomicWeight" -> 12.0107}}, "JSON", "Compact" -> True]ImportString[%, "RawJSON"]Import 参数 (2)
"Data" (1)
"Dataset" (1)
将 JSON 文件导入为 Dataset:
Import["http://en.wikipedia.org/w/api.php?action=query&prop=links&titles=Wolfram%20Language&continue=&format=json", {"RawJSON", "Dataset"}]历史
2015年引入 (10.2) | 在以下年份被更新:2022 (13.2)