json用法
java json 合并用法
java json 合并用法
Java中的JSON(JavaScript Object Notation)合并是指将多个JSON对象合并为一个单独的JSON对象。这可以通过将JSON对象的键值对添加到目标JSON对象中来实现。
在Java中,有多种方法可以实现JSON合并。下面介绍两种常见的方法:
1. 使用Jackson库:
Jackson是Java中一个广泛使用的JSON库,它提供了丰富的功能来处理JSON数据。通过使用Jackson库的ObjectMapper类,我们可以很方便地合并JSON对象。
```
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode1 = objectMapper.readTree(jsonString1); // 第一个JSON对象
JsonNode jsonNode2 = objectMapper.readTree(jsonString2); // 第二个JSON对象
ObjectNode mergedNode = objectMapper.createObjectNode(); // 创建一个空的目标JSON对象
mergedNode.setAll((ObjectNode) jsonNode1); // 将第一个JSON对象的键值对添加到目标JSON对象中
mergedNode.setAll((ObjectNode) jsonNode2); // 将第二个JSON对象的键值对添加到目标JSON对象中
jsonobject 用法
jsonobject 用法
介绍
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输和存储。在Java中,可以使用jsonobject类来处理JSON数据。jsonobject是json库中的一个类,它提供了一系列方法来解析和操作JSON对象。
创建jsonobject对象
在Java中,可以使用jsonobject类的构造方法来创建一个jsonobject对象。常
用的构造方法有以下几种:
1.JSONObject()
–无参构造方法,创建一个空的jsonobject对象。
2.JSONObject(String source)
–使用一个JSON字符串来初始化jsonobject对象。
3.JSONObject(Map<String, Object> map)
–使用一个Map对象来初始化jsonobject对象。
4.JSONObject(Object bean)
–使用一个JavaBean对象来初始化jsonobject对象。
解析JSON字符串
使用jsonobject类可以方便地解析JSON字符串。下面是一个示例:
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; JSONObject jsonObject = new JSONObject(jsonString);
在上面的代码中,首先定义了一个JSON字符串,然后使用jsonobject类的构造方法将字符串解析为一个jsonobject对象。
net6 jsonobject用法
net6 jsonobject用法
摘要:
一、前言
二、JSON简介
1.JSON的定义
2.JSON的优势
三、JSONObject用法详解
1.JSONObject的创建
2.添加键值对
3.获取和修改键值
4.删除键值对
5.遍历JSONObject
6.其他常用方法
四、JSONObject在实际应用中的案例
五、总结
正文:
一、前言
在当今互联网时代,数据的传输与存储变得越来越重要。JSON (JavaScript Object Notation)作为一种轻量级的数据交换格式,广泛应用于前后端交互、数据存储等场景。为了更好地操作JSON数据,Java提供了一个名为JSONObject的类,帮助我们轻松处理JSON数据。本文将详细介绍
JSONObject的用法。
二、JSON简介
1.JSON的定义:JSON是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。它基于ECMAScript(JavaScript)的一个子集。
2.JSON的优势:JSON具有易读、易于数据交换、易于数据存储和易于解析等优势,逐渐成为互联网数据传输的首选格式。
三、JSONObject用法详解
1.JSONObject的创建:通过构造函数创建一个新的JSONObject实例。
```
JSONObject jsonObject = new JSONObject();
```
2.添加键值对:使用`put`方法向JSONObject中添加键值对。
```
jsonObject.put("key", "value");
```
3.获取和修改键值:使用`get`和`put`方法获取和修改JSONObject中的键值。
mysqljson索引用法
mysqljson索引用法
在MySQL中,JSON数据类型提供了一种存储和查询JSON文档的方法。MySQL 及更高版本支持JSON数据类型和JSON函数。
以下是MySQL中JSON索引用法的简要概述:
1. JSON路径表达式:
JSON路径表达式用于指定JSON文档中的特定路径和值。它使用点符号(.)来分隔JSON对象的键和数组的索引。
示例:假设有一个名为"json_table"的表,其中包含一个名为"json_column"的JSON列。要查询名为"name"的键的值,可以使用以下JSON路径表达式:`json_column->'$.name'`。
2. JSON函数:
MySQL提供了多个JSON函数,可用于操作和查询JSON数据。以下是几个常用的JSON函数:
+ `JSON_VALUE()`: 提取JSON对象中的特定键的值。
+ `JSON_EXTRACT()` 或 `->`: 提取JSON对象中的特定路径的值。
+ `JSON_CONTAINS()`: 检查JSON对象是否包含指定的值。
+ `JSON_ARRAY()`: 创建一个JSON数组。
+ `JSON_OBJECT()`: 创建一个JSON对象。
3. JSON索引:
从MySQL 版本开始,可以为包含JSON列的表创建索引。索引可以提高查询性能,尤其是对于包含大量数据的表。
要为JSON列创建索引,可以使用以下语法:
```
sql`CREATE INDEX index_name ON table_name (json_column);` ```
c语言中 json的用法
c语言中json的用法
摘要:
1.简介
2.JSON 的基本概念
3.C 语言中JSON 的解析方法
4.C 语言中JSON 的生成方法
5.总结
正文:
1.简介
C 语言作为一种广泛应用于系统编程和嵌入式开发的编程语言,对于数据的存储和传输有着严格的要求。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。在C 语言中使用JSON,可以方便地进行数据的存储和传输。
2.JSON 的基本概念
JSON 是一种基于对象的文本格式,它包括键值对(key-value pairs)、数组(arrays)和对象(objects)。JSON 中的数据都是用引号括起来的字符串,且所有的键和值都必须用引号括起来。JSON 数据的结构主要包括以下两种:
- 键值对:用冒号(:)分隔的键和值,如"key": "value"。
- 数组:用方括号[] 括起来的元素,如["element1", "element2"]。
3.C 语言中JSON 的解析方法
在C 语言中,可以使用一些第三方库来解析JSON 数据。其中比较常用的库有libjson、cJSON 等。以下是一个使用libjson 解析JSON 数据的示例:
```c
#include <stdio.h>
#include <json.h>
int main() {
const char *json_str = "{"name":"张三", "age":30, "city":"北京"}";
json $的用法
Json中“$”的用法
在JSON 中,"$"通常用作引用字段的特殊字符。在JSON Path(一种用于解析JSON的查询语言)中,"$"有特殊的含义,表示引用根元素。
以下是一些关于 JSON 和 JSONPath 中 "$" 的用法示例:
在 JSON 中,"$" 可以作为字段名称的一部分,例如:
json
{
"name": "John",
"
$$
": "Special character"
}
在上面的示例中,"$"是合法的字段名称,可以存储任何值。 2. 在 JSONPath 中,"$" 表示引用根元素。例如,在以下JSON 结构中:```json { "name": "John", "age": 30, "address": { "street": "123 Main St", "city": "New York" } } ``` 要引用整个 JSON 对象作为根元素,可以使用 "$"。同样地,可以使用 "." 表示引用当前对象或数组中的元素。因此,上述 JSON 对象的 JSONPath 表示为 "$['name']" 或 "$['address']['street']"。请注意,"$" 在 JSON 中的具体用法可能因上下文而异。在某些情况下,它可能具有其他含义或特殊约定。
json-server用法 -回复
json-server用法-回复
JsonServer是一个用于快速搭建RESTful API的工具。它使用JSON格式来存储和交换数据,并且提供了简单易用的API来模拟真实的服务器行为。在本篇文章中,我将一步一步地介绍JsonServer的用法。
第一步:安装JsonServer
要使用JsonServer,首先需要在本地安装它。可以通过npm包管理器来安装JsonServer。打开终端或命令提示符,然后输入以下命令来安装JsonServer:
npm install -g json-server
这将全局安装JsonServer,使得可以在任何目录下使用它。
第二步:创建一个JSON文件
在使用JsonServer之前,首先需要准备一个JSON文件来作为模拟的数据库。可以使用任何喜欢的文本编辑器创建一个空的JSON文件。例如,可以创建一个名为db.json的文件。
第三步:填充JSON文件
在刚创建的JSON文件中,可以填充一些初始数据。这些数据将作为模拟的数据库使用。以下是一个简单的例子:
json
{
"users": [
{ "id": 1, "name": "John Doe" },
{ "id": 2, "name": "Jane Smith" }
]
}
在这个示例中,我们有一个users数组,其中包含两个对象,每个对象都有一个id和一个name属性。
第四步:启动JsonServer
一旦安装并准备好JSON文件,就可以启动JsonServer了。在命令行中导航到包含JSON文件的目录,并输入以下命令:
json11用法
json11用法
Json11是一个轻量级的头文件,旨在简化JSON处理和解析。它
只有一个头文件,可以与任何编译器和平台一起使用,无需任何外部
依赖项。
接下来,我们将详细介绍Json11的用法,以及如何在您的项目
中使用它。
1. 引入头文件
将Json11头文件引入您的项目中,这是使用Json11的第一步。
您可以通过将头文件复制到您的项目中或通过包管理器来实现此操作。示例代码如下:
```cpp
#include "json11.hpp"
```
2. 解析JSON数据
解析一个JSON字符串或文件是Json11中最常见的用途。要解析JSON数据,请使用Json11提供的parse()函数。该函数将JSON字符
串作为参数,并返回一个JsonValue类型的对象,该对象将保留解析
的所有数据。
```cpp
std::string json_string = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
std::string error;
auto json = json11::Json::parse(json_string, error);
if (!error.empty()) {
std::cerr << "Error: " << error << std::endl;
return 1;
}
std::string name = json["name"].string_value();
int age = json["age"].int_value();
json数据 例子
json数据例子
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输。它以键值对的形式组织数据,具有易读、易写的特点,同时也易于解析和生成。下面是一些关于JSON 数据的示例,以帮助您更好地理解和使用JSON。
1. 简单的JSON对象示例:
{
"name": "张三",
"age": 25,
"gender": "男"
}
这是一个包含名称、年龄和性别属性的JSON对象示例。
2. JSON数组示例:
[
{
"name": "张三",
"age": 25,
"gender": "男"
},
{
"name": "李四",
"age": 30,
"gender": "女"
},
{
"name": "王五",
"age": 28,
"gender": "男"
}
]
这是一个包含多个JSON对象的数组示例,每个对象都表示一个人的信息。
3. 嵌套JSON对象示例:
{
"name": "张三",
"age": 25,
"gender": "男",
"address": {
"province": "北京",
"city": "北京",
"street": "朝阳区"
}
}
这是一个包含嵌套JSON对象的示例,其中address属性又包含了province、city和street属性。
4. JSON数组嵌套JSON对象示例:
[
{
"name": "张三",
"age": 25,
"gender": "男",
"address": {
"province": "北京",
"city": "北京",
"street": "朝阳区"
json.stringify的用法
json.stringify的用法
JSON.stringify的用法
在处理数据的过程中,我们经常需要将数据转换成字符串的格式进行传递、存储或展示。而JSON.stringify方法就是一种将JavaScript对象转换成JSON字符串的常用工具。它是JavaScript的一个内置方法,主要用于将JavaScript对象转换为JSON字符串。在本文中,我们将以中括号为主题,一步一步回答关于JSON.stringify方法的一些常见问题。
1. JSON.stringify是什么?
JSON.stringify是一个JavaScript的内置方法,它将一个JavaScript对象转换为一个JSON字符串。它的作用是将JavaScript数据结构转换为JSON (JavaScript Object Notation)格式的字符串,以便于在不同的系统之间进行数据的传递和交互。
2. JSON.stringify的语法是什么样的?
JSON.stringify方法的语法如下:
JSON.stringify(value[, replacer[, space]])
其中,value是要转换为JSON字符串的JavaScript对象;replacer是一个可选参数,用于过滤和转换结果值;space也是一个可选参数,用于控制结果字符串的缩进和换行。
3. 如何使用JSON.stringify方法?
使用JSON.stringify方法非常简单。我们只需要将要转换的JavaScript对象作为方法的参数传递进去即可。下面是一个简单的例子:
c语言中 json的用法
c语言中 json的用法
在C语言中,可以使用第三方库来处理JSON数据。以下是使用json-c库处理JSON数据的基本用法示例:
1. 安装json-c库:
- 在Ubuntu上,可以使用以下命令安装json-c库:`sudo apt-get install libjson-c-dev`
2. 引入json-c库头文件:
```c
#include <json-c/json.h>
```
3. 创建JSON对象:
```c
json_object *jsonObj = json_object_new_object();
```
4. 添加键值对到JSON对象中:
```c
json_object_object_add(jsonObj, "name",
json_object_new_string("John Doe"));
json_object_object_add(jsonObj, "age",
json_object_new_int(25));
json_object_object_add(jsonObj, "isStudent",
json_object_new_boolean(true));
```
5. 获取JSON对象中的键值对:
```c
json_object *nameObj, *ageObj, *isStudentObj;
json_object_object_get_ex(jsonObj, "name", &nameObj);
json_object_object_get_ex(jsonObj, "age", &ageObj);
json用法
json用法
一、什么是JSON
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript语言的子集,可以被多种编程语言使用,包括C、
C++、C#、Java、Perl、Python等。JSON格式的数据比XML格式的数据更加简洁和易于阅读和编写。
二、JSON的基本语法
1. JSON对象
JSON对象是由一对花括号{}包含起来的键值对列表,每个键值对之间用逗号分隔。键和值之间用冒号分隔。
例如:
{
"name": "Tom",
"age": 20,
"gender": "male"
2. JSON数组
JSON数组是由一对方括号[]包含起来的值列表,每个值之间用逗号分隔。
例如:
[
{
"name": "Tom",
"age": 20,
"gender": "male"
},
{
"name": "Lucy",
"age": 18,
"gender": "female"
}
]
3. JSON字符串
JSON字符串是由双引号""包含起来的任意Unicode字符序列,反斜杠\可以用来转义特殊字符。
例如:
"Hello, world!"
4. JSON数值
JSON数值可以是整数或浮点数。
例如:
100
3.14
5. JSON布尔值
JSON布尔值只有两个取值:true和false。
6. JSON空值
JSON空值表示为null。
三、JSON的使用
1. JSON解析
在JavaScript中,可以使用JSON.parse()方法将JSON字符串解析为JavaScript对象。
例如:
var jsonStr = '{"name": "Tom", "age": 20, "gender": "male"}'; var jsonObj = JSON.parse(jsonStr);
delphi json 的用法
delphi json 的用法
Delphi是一种高级编程语言,经常用于Windows平台的软件开发。在Delphi中,可以通过使用JSON(JavaScript Object Notation)格式来处理和存储数据。本文将一步一步回答关于Delphi JSON的用法,帮助读者更好地理解和应用该技术。
第一步:了解JSON格式
JSON是一种轻量级的数据交换格式,易于阅读和编写,并且易于解析和生成。它以键值对的形式组织数据,并使用大括号({})来表示对象,使用方括号([])来表示数组。每个键值对由冒号(:)分隔,多个键值对之间由逗号(,)分隔。
例如,下面是一个简单的JSON对象示例:
{
"name": "John",
"age": 30,
"city": "New York"
}
这个JSON对象包含三个键值对,分别是"name"、"age"和"city",对应的值分别是"John"、30和"New York"。
第二步:使用Delphi创建和解析JSON
Delphi提供了一组用于处理JSON的类,位于System.JSON单元中。可以使用TJSONObject和TJSONValue类创建和解析JSON。下面是一些常用的方法示例:
1. 创建一个简单的JSON对象:
var
jsonObj: TJSONObject;
begin
jsonObj := TJSONObject.Create;
jsonObj.AddPair('name', 'John');
jsonObj.AddPair('age', 30);
jsonObj.AddPair('city', 'New York');
json5 用法
json5 用法
JSON5 是JSON 的一个拓展规范,它保留了JSON 的语法特点,同时又添加了一些新的功能,使得JSON 数据更加灵活和易读。
JSON5 支持的功能有:
1. 支持注释:JSON5 允许在数据中添加单行或多行的注释,以辅助开发者更好地理解和维护JSON 数据。注释的写法和JavaScript 保持一致,可以使用进行单行注释,或者使用/* ... */ 进行多行注释。
2. 支持无引号的属性名:在JSON5 中,可以省略属性名的引号,只要属性名是合法的标识符,即符合JavaScript 的变量命名规范。比如可以写成{ foo: "bar" },而不需要写成{ "foo": "bar" }。
3. 支持单引号:在JSON5 中,字符串可以使用单引号或双引号来表示,相比于JSON 来说更加灵活。
4. 支持多行字符串:在JSON5 中,可以使用反斜杠\ 来连接多行的字符串,使得字符串的写法更加方便。
5. 支持特殊的字符转义:在JSON5 中,可以使用反斜杠来进行特殊字符的转义,比如换行符\n、制表符\t 等。
6. 支持八进制和十六进制数值:在JSON5 中,数值可以使用八进制(以0 开头)或十六进制(以0x 开头)的方式表示。
7. 支持NaN、Infinity 和-Infinity:在JSON5 中,可以直接使用NaN、Infinity 和-Infinity 来表示这三个特殊的数值。
8. 支持日期对象:在JSON5 中,可以直接表示JavaScript 中的日期对象。
JSON5 的使用需要根据具体的场景和需求来决定是否使用。当我们需要更加灵活和易读的JSON 数据时,可以考虑使用JSON5。
JSON的用法与在JS中引入JSON方法
JSON的用法与在JS中引入JSON方法
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它主要用于在支持JavaScript的浏览器中存储和传输数据,类似XML但
更简洁。
因此,JSON的语法更少,更容易读写,更容易被机器解析和生成。
JSON在Web服务器中被用作Ajax技术的一种传输方式,在RESTful Web服务中用于数据交换,也常用于在Node.js应用程序中处理数据。
JSON在JS中的使用
1.引入JSON
JSON本身就是JavaScript的一部分,无需在JS中引入任何模块。
2.JSON.stringify
JSON.stringify用于将JS对象序列化为JSON字符串,例如:
var obj = {name: 'John', age: 21};
var str = JSON.stringify(obj);
console.log(str);
// 输出:{"name":"John","age":21}
JSON.stringify还可以接受第二个参数,这允许您在序列化之前修
改序列化对象。
3.JSON.parse
JSON.parse用于从JSON字符串中解析出JS对象,例如:
var str = '{"name":"John","age":21}';
var obj = JSON.parse(str);
console.log();
// 输出:John
JSON.parse也可以接受第二个参数,这允许在解析之后修改解析结
果对象。
4.使用JSON
JSON可以用来在网络上进行数据交换,以及在JS中存储和获取数据。
json的格式标准
json的格式标准
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以易于阅读和编写的文本形式来表示数据。JSON格式标准主要包括以下几个方面:
1. 数据类型,JSON支持6种数据类型,包括字符串、数字、布尔值、数组、对象和null值。字符串必须包含在双引号中,数字可以是整数或浮点数,布尔值为true或false,数组是由方括号包围的值的有序列表,对象是由花括号包围的键值对的无序集合。
2. 键值对,JSON数据以键值对的形式表示,键和值之间使用冒号分隔,键值对之间使用逗号分隔,最外层的键值对使用花括号包围。
3. 嵌套,JSON支持数据的嵌套,可以在对象中嵌套数组或其他对象,从而构建复杂的数据结构。
4. 空白字符,JSON格式忽略空白字符,包括空格、制表符和换行符,因此可以在需要时使用空白字符来美化格式。
5. 转义字符,JSON使用反斜杠来转义特殊字符,例如双引号、反斜杠和换行符等。
总的来说,JSON格式标准简洁清晰,易于理解和解析,因此被
广泛应用于Web应用程序中的数据交换和存储。符合JSON格式标准
的数据可以通过各种编程语言的JSON解析器进行解析和处理,为数
据交换和互操作提供了便利。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JSON 语法是JavaScript 语法的子集。
JSON 语法规则
JSON 语法是JavaScript 对象表示法语法的子集。
•数据在名称/值对中
•数据由逗号分隔
•花括号保存对象
•方括号保存数组
JSON 名称/值对
JSON 数据的书写格式是:名称/值对。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
这很容易理解,等价于这条JavaScript 语句:
JSON 值
JSON 值可以是:
•数字(整数或浮点数)
•字符串(在双引号中)
•逻辑值(true 或false)
•数组(在方括号中)
•对象(在花括号中)
•null
JSON 对象
JSON 对象在花括号中书写:
对象可以包含多个名称/值对:
这一点也容易理解,与这条JavaScript 语句等价:
JSON 数组
JSON 数组在方括号中书写:
数组可包含多个对象:
在上面的例子中,对象"employees" 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。
JSON 使用JavaScript 语法
因为JSON 使用JavaScript 语法,所以无需额外的软件就能处理JavaScript 中的JSON。
通过JavaScript,您可以创建一个对象数组,并像这样进行赋值:
例子
可以像这样访问JavaScript 对象数组中的第一项:
返回的内容是:
可以像这样修改数据:
JSON 实例- 来自字符串的对象
创建包含JSON 语法的JavaScript 字符串:
由于JSON 语法是JavaScript 语法的子集,JavaScript 函数eval() 可用于将JSON 文本转换为JavaScript 对象。
eval() 函数使用的是JavaScript 编译器,可解析JSON 文本,然后生成JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:
在网页中使用JavaScript 对象:
例子
通过JSON 字符串来创建对象
First Name:
Last Name:
var txt = '{"employees":[' +
'{"firstName":"Bill","lastName":"Gates" },' +
'{"firstName":"George","lastName":"Bush" },' +
'{"firstName":"Thomas","lastName":"Carter" }]}';
var obj = eval ("(" + txt + ")");
document.getElementById("fname").innerHTML=obj.employees[1].firstName document.getElementById("lname").innerHTML=obj.employees[1].lastName
例子
通过JSON 字符串来创建对象
First Name:
Last Name:
var txt = '{"employees":[' +
'{"firstName":"Bill","lastName":"Gates" },' +
'{"firstName":"George","lastName":"Bush" },' +
'{"firstName":"Thomas","lastName":"Carter" }]}';
obj = JSON.parse(txt);
document.getElementById("fname").innerHTML=obj.employees[1].firstName document.getElementById("lname").innerHTML=obj.employees[1].lastName
package com.mai.json;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import net.sf.ezmorph.Morpher;
import net.sf.ezmorph.MorpherRegistry;
import net.sf.ezmorph.bean.BeanMorpher;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.util.JSONUtils;
import mons.beanutils.PropertyUtils;
import org.junit.Test;
public class JsonLibTest {
/*
* 普通类型、List、Collection等都是用JSONArray解析
*
* Map、自定义类型是用JSONObject解析
* 可以将Map理解成一个对象,里面的key/value对可以理解成对象的属性/属性值* 即{key1:value1,key2,value2......}
*
* 1.JSONObject是一个name:values集合,通过它的get(key)方法取得的是key后对应的value部分(字符串)
* 通过它的getJSONObject(key)可以取到一个JSONObject,--> 转换成map, * 通过它的getJSONArray(key) 可以取到一个JSONArray ,
*
*
*/
//一般数组转换成JSON
@Test
public void testArrayToJSON(){
boolean[] boolArray = new boolean[]{true,false,true};
JSONArray jsonArray = JSONArray.fromObject( boolArray );
System.out.println( jsonArray );
// prints [true,false,true]