首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试图将json数组转换为字段问题

试图将json数组转换为字段问题
EN

Stack Overflow用户
提问于 2018-05-18 22:23:22
回答 1查看 27关注 0票数 0

我有下面的JSON,它解析了OK:这只是我想发送的一些术语代码数据。

代码语言:javascript
运行
复制
[{
"TermCode": 2164,
"ACAD_LEVEL_BOT": "GR",
"ACAD_LEVEL_EOT": "GR",
"ACAD_CAREER": "GRAD",
"UA_PRIM_MAJ_PLN": "DPMDP",
"UA_DEGR_DT": "1900-01-01",
"UA_PRIM_MJ_PLN_DES": "Development Practice",
"UA_PRIM_MIN_PLN_D": "-",
"CUM_GPA": 3.707,
"CUR_GPA": 4,
"TOT_CUMULATIVE": 300,
"UNT_PASSD_PRGRSS": 10,
"UNT_TAKEN_PRGRSS": 10,
"UA_PRIM_MJ_PLN_OWN": "School of Anthropology",
"ADMIT_TYPE": "GRD",
"ADMIT_TERM": "2144",
"UA_FA_ST_RES_DESCR": "Resident",
"VISA_PERMIT_TYPE": "-",
"UA_SALT_ROSTER": "-",
"UA_SALT_STATUS": "-",
"DEGR_CHKOUT_STAT": "-",
"EXP_GRAD_TERM": "-",
"UNT_TRNSFR": 0,
"ACAD_PROG_LD": "Graduate Degree Seeking",
"TOT_TRNSFR": 0,
"TUITION_RES": "RES",
"UA_CITIZEN_COUNTRY": "United States",
"UA_CITIZEN_ST_DESC": "Citizen",
"ACADEMIC_LOAD": "F",
"UNT_AUDIT": 0,
"CAMPUS": "MAIN",
"ACADEMIC_YEAR": "2016-2017",
"UA_DEGREE_LEVEL": "Masters",
"ACAD_PROG": "GDEG",
"UA_SEC_MAJ_PLN": "-",
"ACAD_ORG": "0410",
"EFF_START_DT": "2016-12-18 20:37:08",
"CURRENT_IND": "N",
"PROG_STATUS": "AC",
"PROG_ACTION": "MATR"

}]

我想使用这个数组作为一个名为term data的字段,所以我尝试:

代码语言:javascript
运行
复制
[{
termdata: [{
    "TermCode": 2164,
    "ACAD_LEVEL_BOT": "GR",
    "ACAD_LEVEL_EOT": "GR",
    "ACAD_CAREER": "GRAD",
    "UA_PRIM_MAJ_PLN": "DPMDP",
    "UA_DEGR_DT": "1900-01-01",
    "UA_PRIM_MJ_PLN_DES": "Development Practice",
    "UA_PRIM_MIN_PLN_D": "-",
    "CUM_GPA": 3.707,
    "CUR_GPA": 4,
    "TOT_CUMULATIVE": 300,
    "UNT_PASSD_PRGRSS": 10,
    "UNT_TAKEN_PRGRSS": 10,
    "UA_PRIM_MJ_PLN_OWN": "School of Anthropology",
    "ADMIT_TYPE": "GRD",
    "ADMIT_TERM": "2144",
    "UA_FA_ST_RES_DESCR": "Resident",
    "VISA_PERMIT_TYPE": "-",
    "UA_SALT_ROSTER": "-",
    "UA_SALT_STATUS": "-",
    "DEGR_CHKOUT_STAT": "-",
    "EXP_GRAD_TERM": "-",
    "UNT_TRNSFR": 0,
    "ACAD_PROG_LD": "Graduate Degree Seeking",
    "TOT_TRNSFR": 0,
    "TUITION_RES": "RES",
    "UA_CITIZEN_COUNTRY": "United States",
    "UA_CITIZEN_ST_DESC": "Citizen",
    "ACADEMIC_LOAD": "F",
    "UNT_AUDIT": 0,
    "CAMPUS": "MAIN",
    "ACADEMIC_YEAR": "2016-2017",
    "UA_DEGREE_LEVEL": "Masters",
    "ACAD_PROG": "GDEG",
    "UA_SEC_MAJ_PLN": "-",
    "ACAD_ORG": "0410",
    "EFF_START_DT": "2016-12-18 20:37:08",
    "CURRENT_IND": "N",
    "PROG_STATUS": "AC",
    "PROG_ACTION": "MATR"
}]      }]

然而,这并不能解析。我的语法有什么问题?堆栈溢出中有一个错误,不允许我在这里结束我的问题,所以我不得不添加更多的描述,请向下箭头,我没有选择。因此,我的下一步将是拥有json,例如:{ termdata:jsonarray,coursedata:jsonarray,入股数据:jsonarray}--对此的任何想法也将受到赞赏。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-19 08:02:21

要调试像您这样的小代码段,可以使用https://jsonlint.com,它提供了有用的错误消息,因此很容易找到问题所在。

作为一种也适用于大型文件的替代方法,您可能会考虑使用jq。对于文件"input.txt“中的代码段,调用:

代码语言:javascript
运行
复制
jq empty input.txt

生成错误消息:

解析错误:第2行第9列的无效文字

这等于说第一个键没有被正确引用。

(在这里,empty具有抑制正常输出的作用。)

让jq走吧

更好的是,通过让jq来完成这项工作,您可以省去麻烦:

代码语言:javascript
运行
复制
jq '[{termdata:.}]' original.json

这将产生所需的输出。除非另有明确指示,否则jq将接受JSON (或JSON流)并生成JSON (或JSON流)。

您还可以使用jq对多个输入文件进行更复杂的转换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50419955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档