I have json data with multiline. When I use json.decode
, I've a error.
"FormatException (FormatException: Control character in string
... "count": "1", "price": "5", "description": "It is a long established fact
My Json Data
var str = {
"description": "It is a long established fact
that a reader will be distracted by the readable content
of a page when looking at its layout. The point
of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English."
}
Thanks,
CodePudding user response:
Not sure if you want to encode or decode.
If you'd like to encode (create a JSON string out of data), you should make sure that the variable you supply to json.encode
is of type Map<String, dynamic>
. Also if you want to have multiline strings, you should use triple quotes """
for that in Dart. Here's an example
var data = {
"description": """It is a long established fact
that a reader will be distracted by the readable content
of a page when looking at its layout. The point
of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English."""
};
final jsonString = json.encode(data);
If you want to decode (turning a JSON string into a Dart object), your input string should be formatted properly. JSON doesn't have support strings so you'll need to add line breaks \n
, these then have to be ignored in your string declaration as well, just like the quotes within your JSON, resulting in \\n
and \"
:
var str = "{\"description\": \"It is a long established fact\\nthat a reader will be distracted by the readable content\\nof a page when looking at its layout. The point\\nof using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English.\"}";
final data = json.decode(str);