Thread overview |
---|
May 10, 2018 Line breaks in JSON | ||||
---|---|---|---|---|
| ||||
I'm using std.json for the first time. I want to download the contents of a markdown file from a web server. When I do that, the line breaks are escaped, which I don't want. Here's an example: import std.conv, std.json, std.stdio; void main() { string data = "This is a paragraph with line breaks that shouldn't appear when the file is loaded in a text editor."; string msg = JSONValue(["markdown": data]).toString; string msg2 = parseJSON(msg)["markdown"].to!string; writeln(data); writeln(msg2); } Output: This is a paragraph with line breaks that shouldn't appear when the file is loaded in a text editor. "This is a paragraph\nwith line breaks\nthat shouldn't appear\nwhen the file is loaded\nin a text editor." |
May 11, 2018 Re: Line breaks in JSON | ||||
---|---|---|---|---|
| ||||
Posted in reply to bachmeier | On 11/05/2018 2:56 AM, bachmeier wrote: > I'm using std.json for the first time. I want to download the contents of a markdown file from a web server. When I do that, the line breaks are escaped, which I don't want. Here's an example: > > import std.conv, std.json, std.stdio; > > void main() { > string data = > "This is a paragraph > with line breaks > that shouldn't appear > when the file is loaded > in a text editor."; > string msg = JSONValue(["markdown": data]).toString; > string msg2 = parseJSON(msg)["markdown"].to!string; > writeln(data); > writeln(msg2); > } > > Output: > > This is a paragraph > with line breaks > that shouldn't appear > when the file is loaded > in a text editor. > "This is a paragraph\nwith line breaks\nthat shouldn't appear\nwhen the file is loaded\nin a text editor." You'll need to unescape them (which is pretty easy, a simple replacement here). For reference, this is invalid json[0]: ``` { "1 2 3 " } ``` [0] https://jsonlint.com/ |
May 10, 2018 Re: Line breaks in JSON | ||||
---|---|---|---|---|
| ||||
Posted in reply to rikki cattermole | On Thursday, 10 May 2018 at 15:01:57 UTC, rikki cattermole wrote:
> You'll need to unescape them (which is pretty easy, a simple replacement here).
>
> For reference, this is invalid json[0]:
>
> ```
> {
> "1
> 2
> 3 "
> }
> ```
>
> [0] https://jsonlint.com/
So I see the answer is that I don't understand json. A search reveals that this is a common mistake.
|
May 10, 2018 Re: Line breaks in JSON | ||||
---|---|---|---|---|
| ||||
Posted in reply to rikki cattermole | On Thursday, 10 May 2018 at 15:01:57 UTC, rikki cattermole wrote: > [snip] > > You'll need to unescape them (which is pretty easy, a simple replacement here). > > For reference, this is invalid json[0]: > > ``` > { > "1 > 2 > 3 " > } > ``` > > [0] https://jsonlint.com/ I don't see an unescape function in phobos and below doesn't seem to work string msg2 = parseJSON(msg)["markdown"].to!string.replace("\n", " "); |
May 10, 2018 Re: Line breaks in JSON | ||||
---|---|---|---|---|
| ||||
Posted in reply to jmh530 | On Thursday, 10 May 2018 at 17:59:26 UTC, jmh530 wrote:
> On Thursday, 10 May 2018 at 15:01:57 UTC, rikki cattermole wrote:
>> [snip]
>>
>> You'll need to unescape them (which is pretty easy, a simple replacement here).
>>
>> For reference, this is invalid json[0]:
>>
>> ```
>> {
>> "1
>> 2
>> 3 "
>> }
>> ```
>>
>> [0] https://jsonlint.com/
>
> I don't see an unescape function in phobos and below doesn't seem to work
>
> string msg2 = parseJSON(msg)["markdown"].to!string.replace("\n", " ");
I used replace("\\n", "\n")
|
Copyright © 1999-2021 by the D Language Foundation