Re: Line breaks in JSON

2018-05-10 Thread jmh530 via Digitalmars-d-learn

On Thursday, 10 May 2018 at 18:21:17 UTC, bachmeier wrote:

[snip]

I used replace("\\n", "\n")


Ah, I always forget the extra \.


Re: Line breaks in JSON

2018-05-10 Thread bachmeier via Digitalmars-d-learn

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")


Re: Line breaks in JSON

2018-05-10 Thread jmh530 via Digitalmars-d-learn

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", 
" ");


Re: Line breaks in JSON

2018-05-10 Thread bachmeier via Digitalmars-d-learn

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.


Re: Line breaks in JSON

2018-05-10 Thread rikki cattermole via Digitalmars-d-learn

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/


Line breaks in JSON

2018-05-10 Thread bachmeier via Digitalmars-d-learn
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."