On Wednesday, 15 November 2017 at 19:54:20 UTC, Enjoys Math wrote:
I had it working in an earlier program.

Now I have:


main.d
------

import std.json;
import std.file;

int main() {
   JSONValue settings;

   settings = parseJSON("settings.txt");
   auto intList = cast(int[]) settings["int list"].array;

   writeln(intList);

   readln();
}


for input:

settings.txt
------------
{
   "int list" : [1,2,3,4,5]
}


printing:

[1,0,2,0,2,0,2,0,3,0,2, ...] (length = 20)


Should I access each member int the array individually?

Hi, your cast is invalid because each element of "array" is itself a JSONValue.
You're even lucky to have something that resembles to the input ;)

Try rather:

---
import std.json, std.stdio, std.algorithm, std.array;

void main() {
   JSONValue settings;
   settings = parseJSON(`{"int list" : [1,2,3,4,5]}`);
// take the int value of each individal element to make the array. auto intList = settings["int list"].array.map!(a => a.integer).array;
   writeln(intList);
}
---

Reply via email to