ParseBinaryJSONFromString parses a json from string.
(s string)
| 505 | |
| 506 | // ParseBinaryJSONFromString parses a json from string. |
| 507 | func ParseBinaryJSONFromString(s string) (bj BinaryJSON, err error) { |
| 508 | if len(s) == 0 { |
| 509 | err = ErrInvalidJSONText.GenWithStackByArgs("The document is empty") |
| 510 | return |
| 511 | } |
| 512 | data := hack.Slice(s) |
| 513 | if !json.Valid(data) { |
| 514 | err = ErrInvalidJSONText.GenWithStackByArgs("The document root must not be followed by other values.") |
| 515 | return |
| 516 | } |
| 517 | if err = bj.UnmarshalJSON(data); err != nil && !ErrJSONObjectKeyTooLong.Equal(err) && !ErrJSONDocumentTooDeep.Equal(err) { |
| 518 | err = ErrInvalidJSONText.GenWithStackByArgs(err) |
| 519 | } |
| 520 | return |
| 521 | } |
| 522 | |
| 523 | // UnmarshalJSON implements the json.Unmarshaler interface. |
| 524 | func (bj *BinaryJSON) UnmarshalJSON(data []byte) error { |