Skip to content

Commit 6e47a40

Browse files
adonovancopybara-github
authored andcommitted
starlark/lib/json: a JSON module for Starlark
This CL ports the go.starlark.net/starlarkjson module from Go to Java. The json module provides four functions: json.decode json.encode json.indent (not yet implemented) json.encode_indent (not yet implemented) It is tested through eval.ScriptTest, which adds the json module to its environment, along with 'struct', a simple struct-like type. Some tests are commented out, awaiting StarlarkFloat, or richer string support. This is a first step towards removing Bazel's struct.to_json. Updates bazelbuild/starlark#83 PiperOrigin-RevId: 337944489
1 parent 6cb560f commit 6e47a40

File tree

6 files changed

+931
-0
lines changed

6 files changed

+931
-0
lines changed

src/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,7 @@ filegroup(
449449
"//src/main/java/com/google/devtools/common/options:srcs",
450450
"//src/main/java/net/starlark/java/cmd:srcs",
451451
"//src/main/java/net/starlark/java/spelling:srcs",
452+
"//src/main/java/net/starlark/java/lib/json:srcs",
452453
"//src/main/native:srcs",
453454
"//src/main/protobuf:srcs",
454455
"//src/main/tools:srcs",
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
load("@rules_java//java:defs.bzl", "java_library")
2+
3+
licenses(["notice"])
4+
5+
filegroup(
6+
name = "srcs",
7+
srcs = glob(["**"]),
8+
visibility = ["//src:__subpackages__"],
9+
)
10+
11+
# Starlark json module
12+
java_library(
13+
name = "json",
14+
srcs = ["Json.java"],
15+
visibility = ["//src/main/java/net/starlark/java:clients"],
16+
deps = [
17+
"//src/main/java/net/starlark/java/annot",
18+
"//src/main/java/net/starlark/java/eval",
19+
"//src/main/java/net/starlark/java/syntax",
20+
],
21+
)

0 commit comments

Comments
 (0)