This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
In section 9 it says: "An atomic valueXP31 in the data model instance of any other type is serialized to a JSON string by outputting the string value of the item." Where "string value" is linked to this definition: "The term string value is defined in Section 5.12 string-value Accessor DM31. Every node has a string value. For example, the string value of an element is the concatenation of the string values of all its descendant text nodes." String value is not defined for atomic values.
Good point. I propose replacing: "An atomic valueXP31 in the data model instance of any other type is serialized to a JSON string by outputting the string value of the item." with the following: "An atomic valueXP31 in the data model instance of any other type is serialized to a JSON string by outputting the result of applying the fn:string function to the item."
The input is a single atomic value in this case so I think calling fn:string is equivalent to $value cast as xs:string. So you could be more specific and say "... a JSON string by outputting the result of casting the value to xs:string." But this is editorial - I think your proposal is correct.