@@ -114,24 +114,31 @@ verbJsonType :: forall a b. b -> (a -> b) -> (b -> (a -> b) -> Json -> b) -> Jso
114
114
verbJsonType def f g = g def f
115
115
116
116
-- Tests
117
+
117
118
isJsonType :: forall a . (Boolean -> (a -> Boolean ) -> Json -> Boolean ) -> Json -> Boolean
118
119
isJsonType = verbJsonType false (const true )
119
120
121
+ -- | Check if the provided `Json` is the `null` value
120
122
isNull :: Json -> Boolean
121
123
isNull = isJsonType caseJsonNull
122
124
125
+ -- | Check if the provided `Json` is a `Boolean`
123
126
isBoolean :: Json -> Boolean
124
127
isBoolean = isJsonType caseJsonBoolean
125
128
129
+ -- | Check if the provided `Json` is a `Number`
126
130
isNumber :: Json -> Boolean
127
131
isNumber = isJsonType caseJsonNumber
128
132
133
+ -- | Check if the provided `Json` is a `String`
129
134
isString :: Json -> Boolean
130
135
isString = isJsonType caseJsonString
131
136
137
+ -- | Check if the provided `Json` is an `Array`
132
138
isArray :: Json -> Boolean
133
139
isArray = isJsonType caseJsonArray
134
140
141
+ -- | Check if the provided `Json` is an `Object`
135
142
isObject :: Json -> Boolean
136
143
isObject = isJsonType caseJsonObject
137
144
@@ -144,60 +151,86 @@ toJsonType
144
151
-> Maybe a
145
152
toJsonType = verbJsonType Nothing Just
146
153
154
+ -- | Convert `Json` to the `Unit` value if the `Json` is the null value
147
155
toNull :: Json -> Maybe Unit
148
156
toNull = toJsonType caseJsonNull
149
157
158
+ -- | Convert `Json` to a `Boolean` value, if the `Json` is a boolean.
150
159
toBoolean :: Json -> Maybe Boolean
151
160
toBoolean = toJsonType caseJsonBoolean
152
161
162
+ -- | Convert `Json` to a `Number` value, if the `Json` is a number.
153
163
toNumber :: Json -> Maybe Number
154
164
toNumber = toJsonType caseJsonNumber
155
165
166
+ -- | Convert `Json` to a `String` value, if the `Json` is a string.
156
167
toString :: Json -> Maybe String
157
168
toString = toJsonType caseJsonString
158
169
170
+ -- | Convert `Json` to an `Array` of `Json` values, if the `Json` is an array.
159
171
toArray :: Json -> Maybe (Array Json )
160
172
toArray = toJsonType caseJsonArray
161
173
174
+ -- | Convert `Json` to an `Object` of `Json` values, if the `Json` is an array.
162
175
toObject :: Json -> Maybe (Object Json )
163
176
toObject = toJsonType caseJsonObject
164
177
165
178
-- Encoding
166
179
180
+ -- | Construct `Json` from a `Boolean` value
167
181
foreign import fromBoolean :: Boolean -> Json
182
+
183
+ -- | Construct `Json` from a `Number` value
168
184
foreign import fromNumber :: Number -> Json
185
+
186
+ -- | Construct `Json` from a `String` value. If you would like to parse a string
187
+ -- | of JSON into valid `Json`, see `jsonParser`.
169
188
foreign import fromString :: String -> Json
189
+
190
+ -- | Construct `Json` from an array of `Json` values
170
191
foreign import fromArray :: Array Json -> Json
192
+
193
+ -- | Construct `Json` from an object with `Json` values
171
194
foreign import fromObject :: Object Json -> Json
172
195
173
196
-- Defaults
174
197
198
+ -- | The JSON null value represented as `Json`
175
199
foreign import jsonNull :: Json
176
200
201
+ -- | The true boolean value represented as `Json`
177
202
jsonTrue :: Json
178
203
jsonTrue = fromBoolean true
179
204
205
+ -- | The false boolean value represented as `Json`
180
206
jsonFalse :: Json
181
207
jsonFalse = fromBoolean false
182
208
209
+ -- | The number zero represented as `Json`
183
210
jsonZero :: Json
184
211
jsonZero = fromNumber 0.0
185
212
213
+ -- | An empty string represented as `Json`
186
214
jsonEmptyString :: Json
187
215
jsonEmptyString = fromString " "
188
216
217
+ -- | An empty array represented as `Json`
189
218
jsonEmptyArray :: Json
190
219
jsonEmptyArray = fromArray []
191
220
221
+ -- | An empty object represented as `Json`
192
222
jsonEmptyObject :: Json
193
223
jsonEmptyObject = fromObject Obj .empty
194
224
225
+ -- | Constructs a `Json` array value containing only the provided value
195
226
jsonSingletonArray :: Json -> Json
196
227
jsonSingletonArray j = fromArray [j]
197
228
229
+ -- | Constructs a `Json` object value containing only the provided key and value
198
230
jsonSingletonObject :: String -> Json -> Json
199
231
jsonSingletonObject key val = fromObject (Obj .singleton key val)
200
232
233
+ -- | Converts a `Json` value to a JSON string.
201
234
foreign import stringify :: Json -> String
202
235
203
236
foreign import _caseJson
0 commit comments