lua判断字符串是否为json
时间: 2023-10-18 12:22:43 浏览: 308
可以使用第三方库cjson,使用cjson.decode(str)来尝试解析字符串,如果解析成功则为json字符串,否则不为json字符串。具体代码如下:
```lua
local cjson = require("cjson")
local is_json = false
local str = "{'name': 'John', 'age': 30, 'city': 'New York'}"
local json_str, pos, err = cjson.decode(str)
if not err then
is_json = true
end
print(is_json) -- 输出 true
```
需要注意的是,如果待判断的字符串中存在单引号时,则需要将字符串用双引号括起来才能被解析为json字符串。
相关问题
$ct_url = "https://scheduling.sh.pegatroncorp.com/QueryMPctrecord/?format=json&project=kangol&sn=" . $isn . ""; //根據 80SN 獲取回值 $ct = file_get_contents($ct_url, false, stream_context_create($stream_opts)); $ct = json_decode($ct, true); $MainAll = getArrayListAll($pdo, $isn, $factory, 'MAIN'); //查詢所有有關80SN的wip數據,以此獲取最近一筆的上一筆outdate于照CT時間作比較。 $ct_sts = array('SA-FACT2', 'RAT MARS (TETHERED)', 'RAT COMBO(LUA)'); if ($ct['is_exist'] == 1) { if (!in_array($arr_list['fail_station'], $ct_sts)) { //當fail站位不在list中時正常走邏輯,否則不報廢 if (count($MainAll) >= 2) { //當此 SN 入 WIP 大於或者等於 2 次 if ($MainAll[1]['outdate'] != '0000-00-00 00:00:00') { if ($MainAll[1]['outdate'] < $ct['data']['记录添加时间']) { //當最新一筆的上一筆 outdate 時間 小於 照CT時間 給出ACTION $ct_arr[] = "更換CG單體(CT機台,報廢)"; $ct_rc[] = "(C)CT scan units"; } } else { echo "<script>alert('該機台: $isn 上次OUTDATE為空,需補資料')</script>"; exit; } } else { //當此 SN 入 WIP 為一次直接給出ACTION $ct_arr[] = "更換CG單體(CT機台,報廢)"; $ct_rc[] = "(C)CT scan units"; } } } else if ($ct['is_exist'] == 0) { $cg_sn = $MainAll[0]['cg_sn']; $CgAll = getArrayListAll($pdo, $cg_sn, $factory, 'CG'); //根據cg sn反查wip,以獲取最近一筆的上一筆link80SN的outdate時間與CT時間作比較 if ($cg_sn != '') { //當 70SN 存在的時候 $ct_url1 = "https://scheduling.sh.pegatroncorp.com/QueryMPctrecord/?format=json&project=kangol&sn=" . $cg_sn . ""; //根據 70SN 獲取回值 $ct1 = file_get_contents($ct_url1, false, stream_context_create($stream_opts)); if ($ct1['is_exist'] == 1) { if (count($CgAll) >= 2) { //當此 SN 入 WIP 大於或者等於 2 次 if ($CgAll[1]['outdate'] != '0000-00-00 00:00:00') { if ($CgAll[1]['outdate'] < $ct['data']['记录添加时间']) { //當最新一筆的上一筆 outdate 時間 小於 照CT時間 給出ACTION $ct_arr[] = "更換CG單體(CT機台,報廢)"; $ct_rc[] = "(C)CT scan units"; } } else { echo "<script>alert('該機台: $isn 上次OUTDATE為空,需補資料')</script>"; exit; } } else { //當此 SN 入 WIP 為一次直接給出ACTION $ct_arr[] = "更換CG單體(CT機台,報廢)"; $ct_rc[] = "(C)CT scan units"; } } } }是什么意思
这段代码是一个 PHP 代码块,主要是用于根据输入的 SN 号码查询相关的 WIP(Work in Progress)数据,并在满足一定条件时给出相应的操作。其中涉及到以下几个变量和函数:
- $ct_url:用于存储查询 CT(Computed Tomography)记录的 URL 地址,根据输入的 SN 号码和项目名称拼接而成。
- $ct:用于存储从 $ct_url 中获取的 CT 记录,经过解码后为一个数组。
- $MainAll:用于存储查询到的所有与输入的 SN 号码相关的 WIP 数据,以数组形式返回。
- $ct_sts:一个包含多个字符串的数组,用于判断 WIP 数据中的某个属性是否在指定的字符串列表中。
- getArrayListAll():一个自定义函数,用于查询数据库中与输入的 SN 号码相关的 WIP 数据,并以数组形式返回。
- in_array():PHP 自带的函数,用于判断一个值是否在指定的数组中存在。
- count():PHP 自带的函数,用于返回一个数组中的元素个数。
- echo:PHP 自带的函数,用于输出指定的字符串。
- exit:PHP 自带的函数,用于终止当前脚本的执行。
- 如果 $ct['is_exist'] 为 1,则表示查询到了 CT 记录,此时会根据一定条件判断是否需要执行某些操作,如更换 CG(Computer Graphics) 单体或报废等。
- 如果 $ct['is_exist'] 为 0,则表示未查询到 CT 记录,此时会根据一定条件查询 CG 单体相关的 WIP 数据,并根据一定条件判断是否需要执行某些操作。
需要注意的是,这段代码只是一个片段,无法确定其具体的功能和作用。
阅读全文