From e19fd4b2680a20cb0820a433dcf50b5f1056cdc4 Mon Sep 17 00:00:00 2001 From: codecameo Date: Sun, 19 Aug 2018 14:59:06 +0600 Subject: [PATCH 1/3] create develop branch --- kotlin-jsonq.iml | 79 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 kotlin-jsonq.iml diff --git a/kotlin-jsonq.iml b/kotlin-jsonq.iml new file mode 100644 index 0000000..39a72a9 --- /dev/null +++ b/kotlin-jsonq.iml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 97deba56a8f6bca83a347326c2ed0ba9abe351c7 Mon Sep 17 00:00:00 2001 From: codecameo Date: Sun, 19 Aug 2018 15:00:14 +0600 Subject: [PATCH 2/3] create develop branch --- src/main/kotlin/ninja/sakib/jsonq/ext/StringExt.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/kotlin/ninja/sakib/jsonq/ext/StringExt.kt b/src/main/kotlin/ninja/sakib/jsonq/ext/StringExt.kt index 1c51f32..24df50c 100644 --- a/src/main/kotlin/ninja/sakib/jsonq/ext/StringExt.kt +++ b/src/main/kotlin/ninja/sakib/jsonq/ext/StringExt.kt @@ -7,6 +7,7 @@ package ninja.sakib.jsonq.ext * := Coffee : Dream : Code */ + fun String.isInt(): Boolean { return this.toIntOrNull() != null } From 2e0dda0ce501625e9ada5dc510ea2b26efdba535 Mon Sep 17 00:00:00 2001 From: codecameo Date: Thu, 13 Sep 2018 12:54:39 +0600 Subject: [PATCH 3/3] Implement selection on json --- kotlin-jsonq.iml | 9 +------- .../ninja/sakib/jsonq/ext/JsonArrayExt.kt | 22 +++++++++++++++++++ .../kotlin/ninja/sakib/jsonq/ext/StringExt.kt | 1 - 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/kotlin-jsonq.iml b/kotlin-jsonq.iml index 39a72a9..0f693b6 100644 --- a/kotlin-jsonq.iml +++ b/kotlin-jsonq.iml @@ -47,6 +47,7 @@ + @@ -67,13 +68,5 @@ - - - - - - - - \ No newline at end of file diff --git a/src/main/kotlin/ninja/sakib/jsonq/ext/JsonArrayExt.kt b/src/main/kotlin/ninja/sakib/jsonq/ext/JsonArrayExt.kt index 574adb1..73c011d 100644 --- a/src/main/kotlin/ninja/sakib/jsonq/ext/JsonArrayExt.kt +++ b/src/main/kotlin/ninja/sakib/jsonq/ext/JsonArrayExt.kt @@ -2,6 +2,7 @@ package ninja.sakib.jsonq.ext import com.eclipsesource.json.Json import com.eclipsesource.json.JsonArray +import com.eclipsesource.json.JsonObject import com.eclipsesource.json.JsonValue import ninja.sakib.jsonq.utils.* @@ -169,3 +170,24 @@ fun JsonArray.max(key: String): JsonValue { fun JsonArray.avg(key: String): Double { return this.sum(key) / this.size() } + +fun JsonArray.count(): Int { + return size() +} + +fun JsonArray.select(vararg key: String): JsonArray { + val res = JsonArray() + for (j in this) { + val jObject = j as JsonObject + val json = JsonObject() + for (k in key) { + val v = jObject.get(k) + if (v != null) { + json.add(k, v) + } + } + res.add(json) + } + return res +} + diff --git a/src/main/kotlin/ninja/sakib/jsonq/ext/StringExt.kt b/src/main/kotlin/ninja/sakib/jsonq/ext/StringExt.kt index 24df50c..1c51f32 100644 --- a/src/main/kotlin/ninja/sakib/jsonq/ext/StringExt.kt +++ b/src/main/kotlin/ninja/sakib/jsonq/ext/StringExt.kt @@ -7,7 +7,6 @@ package ninja.sakib.jsonq.ext * := Coffee : Dream : Code */ - fun String.isInt(): Boolean { return this.toIntOrNull() != null }