You're inserting a value of type Json<Option<Person>>, not of type Option<Json<Person>>, via the constructor Json(person). That encodes the None case as Json(None), which, indeed, represents a non-SQL-null JSON value that encodes as null.
You likely want to transpose the type to Option<Json<Person>> (indeed, you name it that in your title). You can do this with something like person.map(|value| Json(value)), where you presently have Json(person).