Fleece icon indicating copy to clipboard operation
Fleece copied to clipboard

_jkey for undefined or missing value should return None not Some

Open wallymathieu opened this issue 2 years ago • 0 comments

Expected behavior

When you read non existing keys using _jkey should return None.

#r "nuget: Fleece.FSharpData, 0.10.0"
open Fleece
open Fleece.FSharpData
open FSharp.Data
open Fleece.FSharpData.Lens
open FSharpPlus
open FSharpPlus.Lens

JsonValue.Parse( "{ \"b\": 200}" ) ^? (_jkey "a" );;
// val it: JsonValue option = None

Actual behavior

The _jkey returns Some for undefined or missing keys.

#r "nuget: Fleece.FSharpData, 0.10.0"
open Fleece
open Fleece.FSharpData
open FSharp.Data
open Fleece.FSharpData.Lens
open FSharpPlus
open FSharpPlus.Lens

JsonValue.Parse( "{ \"b\": 200}" ) ^? (_jkey "a" );;
// val it: JsonValue option = Some null
#r "nuget: Fleece.NewtonsoftJson, 0.10.0"
open Fleece
open Fleece.Newtonsoft
open Fleece.Newtonsoft.Lens
open FSharpPlus
open FSharpPlus.Lens

JsonValue.Parse( "{ \"b\": 200}" ) ^? (_jkey "a" );;
// val it: JsonValue option = Some <seq>

wallymathieu avatar Jan 22 '23 08:01 wallymathieu