【发布时间】:2017-10-13 14:08:51
【问题描述】:
我有一个使用 GET 在 API 中发出的请求
LWP::UserAgent,
数据以 JSON 形式返回,最多返回两个结果,如下:
{
"status":1,
"time":1507891855,
"response":{
"prices":{
"nome1\u2122":{
"preco1":1111,
"preco2":1585,
"preco3":1099
},
"nome2":{
"preco1":519,
"preco2":731,
"preco3":491
}
}
}
}
转储:
$VAR1 = {
'status' => 1,
'time' => 1507891855,
'response' => {
'prices' => {
'nome1' => {
'preco1' => 1111,
'preco3' => 1099,
'preco2' => 1585
},
'nome2' => {
'preco3' => 491,
'preco1' => 519,
'preco2' => 731
}
}
}
};
我想做的是:
获取这些数据并将其保存在一个变量中,以便使用 if 与另一个已存储名称的变量进行比较。比较将与 name1 / name2 进行比较,如果其他变量为真,它将得到 preco2 和 preco3 来打印所有内容
我在这个案例中最大的问题是 JSON 中的一些名称包含诸如 \u2122 的 (TradeMark) 之类的字符(有些情况是其他字符),所以我无法与另一个名称进行比较已经具有正确名称的变量
nome1™
如果我只能保存已经“转换”的 JSON,那么剩下的字符会帮助我。
基本上在请求 API 之后,我想将内容保存在一个变量中,该变量已经将所有 \u2122 转换为它们各自的字符(这是我不知道如何在 Perl 中执行的部分),然后使用另一个比较它们的变量名称等于显示价格
感谢您的帮助,如有任何问题,请告诉我,我尝试以另一种方式再次解释。
【问题讨论】:
-
您的小sn-ps 代码根本无法说明您在做什么。例如,
$nome1json是什么?请添加minimal reproducible example,以便我们更好地帮助您找到问题的解决方案。 -
基本上在请求 API 之后,我想将内容保存在一个已经将所有 \u2122 转换为各自字符的变量中(这是我不知道如何在 Perl 中执行的部分)然后使用另一个变量来比较它们的名称是否等于显示价格。如果我的问题含糊不清,我很抱歉。
-
您目前如何将 JSON 数据转换为您转储的 Perl 数据结构?为什么
™消失了?