std.net.curl get json_encode

Andre Pany andre at s-e-a-p.de
Fri Oct 9 17:50:16 UTC 2020


On Friday, 9 October 2020 at 05:56:05 UTC, Vino wrote:
> On Friday, 9 October 2020 at 05:30:34 UTC, ikod wrote:
>> On Friday, 9 October 2020 at 01:45:37 UTC, Vino wrote:
>>> On Friday, 2 October 2020 at 23:20:48 UTC, Imperatorn wrote:
>>>> On Friday, 2 October 2020 at 21:12:09 UTC, Vino wrote:
>>>>> Hi All,
>> ...
>>> auto content = https.perform();
>>> https.shutdown;
>>> JSONValue jv = parseJSONValue(content);
>>
>> Maybe
>> JSONValue jv = toJSONValue(content);
>>
>>
>>> writeln(jv["Name"]);
>>>
>>> }
>>>
>>> From,
>>> Vino
>
> Hi Ikod,
>
>   No luck.
>
> Error
> test.d(19): Error: template `stdx.data.json.parser.toJSONValue` 
> cannot deduce function from argument types `!()(int)`, 
> candidates are:
> C:\D\dmd2\windows\bin\..\..\src\phobos\stdx\data\json\parser.d(58):        `toJSONValue(LexOptions options = LexOptions.init, Input)(Input input, string filename = "", int maxDepth = defaultMaxDepth)`
>   with `options = cast(LexOptions)0,
>        Input = int`
>   whose parameters have the following constraints:
>   `~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
> `  > isInputRange!Input
>       - isSomeChar!(ElementType!Input)
>         or:
>       - isIntegral!(ElementType!Input)
> `  `~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
> C:\D\dmd2\windows\bin\..\..\src\phobos\stdx\data\json\parser.d(65):        `toJSONValue(Input)(Input tokens, int maxDepth = defaultMaxDepth)`
>   with `Input = int`
>   whose parameters have the following constraints:
>   `~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
> `  > isJSONTokenInputRange!Input
> `  `~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
> datacoll.d(19):        All possible candidates are marked as 
> `deprecated` or `@disable`
>   Tip: not satisfied constraints are marked with `>`
>
> From,
> Vino

(Writing from my mobile, a lot of room for improvements):

import std.net.curl, std.stdio;

// GET with custom data receivers
auto http = HTTP("dlang.org");
http.onReceiveHeader =
     (in char[] key, in char[] value) { writeln(key, ": ", value); 
};

ubyte[] content;
http.onReceive = (ubyte[] data) {
content ~= data;
return data.length; };
http.perform();

string s = cast(string) content;

Kind regards
Andre



More information about the Digitalmars-d-learn mailing list