@@ -114,24 +114,31 @@ verbJsonType :: forall a b. b -> (a -> b) -> (b -> (a -> b) -> Json -> b) -> Jso
114114verbJsonType def f g = g def f
115115
116116-- Tests
117+
117118isJsonType :: forall a . (Boolean -> (a -> Boolean ) -> Json -> Boolean ) -> Json -> Boolean
118119isJsonType = verbJsonType false (const true )
119120
121+ -- | Check if the provided `Json` is the `null` value
120122isNull :: Json -> Boolean
121123isNull = isJsonType caseJsonNull
122124
125+ -- | Check if the provided `Json` is a `Boolean`
123126isBoolean :: Json -> Boolean
124127isBoolean = isJsonType caseJsonBoolean
125128
129+ -- | Check if the provided `Json` is a `Number`
126130isNumber :: Json -> Boolean
127131isNumber = isJsonType caseJsonNumber
128132
133+ -- | Check if the provided `Json` is a `String`
129134isString :: Json -> Boolean
130135isString = isJsonType caseJsonString
131136
137+ -- | Check if the provided `Json` is an `Array`
132138isArray :: Json -> Boolean
133139isArray = isJsonType caseJsonArray
134140
141+ -- | Check if the provided `Json` is an `Object`
135142isObject :: Json -> Boolean
136143isObject = isJsonType caseJsonObject
137144
@@ -144,60 +151,88 @@ toJsonType
144151 -> Maybe a
145152toJsonType = verbJsonType Nothing Just
146153
154+ -- | Convert `Json` to the `Unit` value if the `Json` is the null value
147155toNull :: Json -> Maybe Unit
148156toNull = toJsonType caseJsonNull
149157
158+ -- | Convert `Json` to a `Boolean` value, if the `Json` is a boolean.
150159toBoolean :: Json -> Maybe Boolean
151160toBoolean = toJsonType caseJsonBoolean
152161
162+ -- | Convert `Json` to a `Number` value, if the `Json` is a number.
153163toNumber :: Json -> Maybe Number
154164toNumber = toJsonType caseJsonNumber
155165
166+ -- | Convert `Json` to a `String` value, if the `Json` is a string. To write a
167+ -- | `Json` value to a JSON string, see `stringify`.
156168toString :: Json -> Maybe String
157169toString = toJsonType caseJsonString
158170
171+ -- | Convert `Json` to an `Array` of `Json` values, if the `Json` is an array.
159172toArray :: Json -> Maybe (Array Json )
160173toArray = toJsonType caseJsonArray
161174
175+ -- | Convert `Json` to an `Object` of `Json` values, if the `Json` is an object.
162176toObject :: Json -> Maybe (Object Json )
163177toObject = toJsonType caseJsonObject
164178
165179-- Encoding
166180
181+ -- | Construct `Json` from a `Boolean` value
167182foreign import fromBoolean :: Boolean -> Json
183+
184+ -- | Construct `Json` from a `Number` value
168185foreign import fromNumber :: Number -> Json
186+
187+ -- | Construct `Json` from a `String` value. If you would like to parse a string
188+ -- | of JSON into valid `Json`, see `jsonParser`.
169189foreign import fromString :: String -> Json
190+
191+ -- | Construct `Json` from an array of `Json` values
170192foreign import fromArray :: Array Json -> Json
193+
194+ -- | Construct `Json` from an object with `Json` values
171195foreign import fromObject :: Object Json -> Json
172196
173197-- Defaults
174198
199+ -- | The JSON null value represented as `Json`
175200foreign import jsonNull :: Json
176201
202+ -- | The true boolean value represented as `Json`
177203jsonTrue :: Json
178204jsonTrue = fromBoolean true
179205
206+ -- | The false boolean value represented as `Json`
180207jsonFalse :: Json
181208jsonFalse = fromBoolean false
182209
210+ -- | The number zero represented as `Json`
183211jsonZero :: Json
184212jsonZero = fromNumber 0.0
185213
214+ -- | An empty string represented as `Json`
186215jsonEmptyString :: Json
187216jsonEmptyString = fromString " "
188217
218+ -- | An empty array represented as `Json`
189219jsonEmptyArray :: Json
190220jsonEmptyArray = fromArray []
191221
222+ -- | An empty object represented as `Json`
192223jsonEmptyObject :: Json
193224jsonEmptyObject = fromObject Obj .empty
194225
226+ -- | Constructs a `Json` array value containing only the provided value
195227jsonSingletonArray :: Json -> Json
196228jsonSingletonArray j = fromArray [j]
197229
230+ -- | Constructs a `Json` object value containing only the provided key and value
198231jsonSingletonObject :: String -> Json -> Json
199232jsonSingletonObject key val = fromObject (Obj .singleton key val)
200233
234+ -- | Converts a `Json` value to a JSON string. To retrieve a string from a `Json`
235+ -- | string value, see `fromString`.
201236foreign import stringify :: Json -> String
202237
203238foreign import _caseJson
0 commit comments