json数组中的value有string和boolean两种类型的数据,该如何解析值为boolean的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json数组中的value有string和boolean两种类型的数据,该如何解析值为boolean的数据相关的知识,希望对你有一定的参考价值。

如题,json数据如下所示(isEnabled为布尔类型): "ecode": "TmuGsj", "terminalAppId": "e128201a907e48acbf54acebcdf9492a", "code": "yx_test2", "name": "越秀首页2", "terminalCode": "Web", "description": null, "isEnabled": true, "appId": "0698bed2-97a4-4cdd-bd88-c46a7bac51e3", "versionId": null, "images": [], "eCode": "TmuGsj", "sourceId": null 想在一个map<String,String>中获取到isEnabled的值应该怎么做呢?

参考技术A Boolean.parseBoolean(String类型),把字符串类型转换为boolean 参考技术B

看错误就可知已经解析成布尔值,用

boolean isEnabled=map.get("isEnabled");

使用 javascript 和 Postman 计算 JSON 数组中的记录

【中文标题】使用 javascript 和 Postman 计算 JSON 数组中的记录【英文标题】:Counting records in JSON array using javascript and Postman 【发布时间】:2016-06-29 11:05:27 【问题描述】:

我有一个返回 2 条记录的控件:


  "value": [
    
      "ID": 5,
      "Pupil": 1900031265,
      "Offer": false,
    ,
    
      "ID": 8,
      "Pupil": 1900035302,
      "Offer": false,
      "OfferDetail": ""
    
  ]

我需要通过 Postman 进行测试,我返回了 2 条记录。我尝试了在这里和其他地方找到的各种方法,但没有运气。使用下面的代码无法返回预期的答案。

responseJson = JSON.parse(responseBody);
var list = responseBody.length;
tests["Expected number"] = list === undefined || list.length === 2;

此时我不确定是我正在测试的 API 有问题还是我的编码有问题 - 我尝试循环遍历返回的项目,但这对我也不起作用。有人可以建议 - 我是 javascript 新手,所以我希望我的问题有一个明显的原因,但我没有看到它。非常感谢。

【问题讨论】:

responseJson 是一个对象读取密钥value 然后length 您的 json 数组的长度为 1 个名为“value”的对象,但您的“value”对象的长度应为 2。请改为检查 responseJson.value 长度。 【参考方案1】:

您的响应正文是一个对象,您找不到对象的长度尝试

var list = responseJson.value.length;

【讨论】:

【参考方案2】:

如 cmets 中所述,您应该测试 responseJson.value.length

responseJson = JSON.parse(responseBody); tests["Expected number"] = typeof responseJson === 'undefined' || responseJson.value.length;

【讨论】:

【参考方案3】:

更正你的 json。试试这个。

========================v

var test = JSON.parse('"value": ["ID": 5,"Pupil": 1900031265,"Offer": false,"ID": 8,"Pupil": 1900035302,"Offer": false,"OfferDetail": ""] ')
    
test.value.length; // 2

所以你需要识别json中的数组(以[括号开头。然后取key然后检查keylength

【讨论】:

【参考方案4】:

在邮递员的Tests 部分下,执行以下操作(截图如下): var body = JSON.parse(responseBody); tests["Count: " + body.value.length] = true;

这是您应该看到的(注意:我将 responseBody 替换为 JSON 以模拟上面的示例):

【讨论】:

我将此添加到一个大型响应中,但它永远不会返回,只是说加载了几个小时。 @ConnieDeCinko 我已经为大数据做了这个,这个代码对我有用var body = JSON.parse(responseBody); tests["Count: " + body.length] = true;【参考方案5】:

我有一个类似的问题,我曾经测试一定数量的数组成员是:

responseJson = JSON.parse(responseBody);
tests["Response Body = []"] = responseJson.length === valueYouAreCheckingFor;

要检查您获得的值,请将其打印并检查邮递员控制台。

console.log(responseJson.length);

【讨论】:

【参考方案6】:

我在验证 JSON 中的数组长度时遇到了类似的问题。下面的 sn-p 应该可以帮助您解决它-

responseJson = JSON.parse(responseBody);
var list = responseBody.length;
tests["Expected number"] = responseJson.value.length === list;

【讨论】:

【参考方案7】:

工作代码

 pm.test("Verify the number of records",function()
 
   var response = JSON.parse(responseBody); 
   pm.expect(Object.keys(response.value).length).to.eql(5);

 );
//Please change the value in to.eql function as per your requirement    
//'value' is the JSON notation name for this example and can change as per your JSON

【讨论】:

【参考方案8】:

这就是我为计算记录所做的工作

//parsing the Response body to a variable
    responseJson = JSON.parse(responseBody);

//Finding the length of the Response Array
    var list = responseJson.length;
    console.log(list);
    tests["Validate service retuns 70 records"] = list === 70;

【讨论】:

【参考方案9】:

首先您应该将响应转换为 json 并找到值路径。值是数组。您应该调用 length 函数以获取其中有多少个对象并检查您的预期大小

pm.test("Validate value count", function () 
    pm.expect(pm.response.json().value.length).to.eq(2);
);

【讨论】:

【参考方案10】:

这是我想出的最简单的方法:

pm.expect(Object.keys(pm.response.json()).length).to.eql(18);

无需为您的变量自定义任何内容。只需复制、粘贴并将“18”调整为您期望的任何数字。

【讨论】:

我得到:AssertionError: expected 3 to deeply equal 10 @liquide 这可能只是意味着您的测试正确失败。这并不意味着测试是错误的。【参考方案11】:

在一个数组中仅断言 2 个对象的更新版本:

pm.test("Only 2 objects in array", function ()
    pm.expect(pm.response.json().length).to.eql(2);
);

【讨论】:

以上是关于json数组中的value有string和boolean两种类型的数据,该如何解析值为boolean的数据的主要内容,如果未能解决你的问题,请参考以下文章

js获取json对象中的key和value,并组成新数组

软件测试中,json的值的数据类型都有哪些?

android怎么把json转换为hashmap

访问 BOOL 值并从数组中设置表格单元格

如何使用键和值创建json对象,其中value是数组

json 字符串中一个 value 多种类型的反序列化