Recent Changes - Search:

Oktatás

* Programozás 2
  + feladatsor
  + C feladatsor
  + Python feladatsor
  + GitHub oldal

* Szkriptnyelvek
  + feladatsor
  + quick link

* Adator. prog.
  + feladatsor
  + quick link

Teaching

* Prog. for Data Sci. (TODO)

teaching assets


Félévek

* 2025/26/1
* archívum


Linkek

* kalendárium
   - munkaszüneti napok '20
* tételsorok
* jegyzetek
* szakdolgozat / PhD
* ösztöndíjak
* certificates
* C lang.
* C++
* C#
* Clojure
* D lang.
* Java
* Nim
* Scala


[ edit | logout ]
[ sandbox | passwd ]

Reading JSON

(1) process an array
// longer version:

import std.stdio;
import std.json;

void main()
{
    string jsonStr = `["Adam", "Bob", "Cleo"]`;

    JSONValue jsonObj = parseJSON(jsonStr);

    foreach (item; jsonObj.array)
    {
        string name = item.str;
        writeln(name);
    }
}
// shorter version:

import std.stdio;
import std.json;
import std.algorithm; // map()
import std.array; // .array()

void main()
{
    string jsonStr = `["Adam", "Bob", "Cleo"]`;

    auto jsonObj = parseJSON(jsonStr);

    string[] names = jsonObj.array.map!(item => item.str).array;
    foreach (name; names)
    {
        writeln(name);
    }
}

Output in both cases:

Adam
Bob
Cleo
(2) process an object
// common part

import std.stdio;
import std.json;
import std.algorithm; // map()
import std.array; // .array()

void main()
{
    string jsonStr = `
{
    "last": "Doe",
    "first": "John",
    "age": 39,
    "sex": "M",
    "registered": true,
    "salary": 70000,
    "daughter": {
        "first": "Jane",
        "sex": "F",
        "age": 18
    }
}
`;
    auto jsonObj = parseJSON(jsonStr);
}
foreach (key, value; jsonObj.object)
{
    writeln(key, " -> ", value);
}
first -> "John"
age -> 39
registered -> true
sex -> "M"
last -> "Doe"
salary -> 70000
long age = jsonObj["age"].integer;
writeln(age); // 39

bool status = jsonObj["registered"].boolean;
writeln(status); // true

long daughterAge = jsonObj["daughter"]["age"].integer;
writeln(daughterAge); // 18

Note: .integer() returns a long, not an int

// alternative way:

string first = jsonObj["first"].get!string;
writeln(first); // John

int age = jsonObj["age"].get!int;
writeln(age); // 39

bool status = jsonObj["registered"].get!bool;
writeln(status); // true

int daughterAge = jsonObj["daughter"]["age"].get!int;
writeln(daughterAge); // 18

Note: .get!<type> will convert the value to the given type. We can specify any type, e.g. int too.

Cloud City

  

Blogjaim, hobbi projektjeim

* The Ubuntu Incident
* Python Adventures
* @GitHub
* heroku
* extra
* haladó Python
* YouTube listák


Debrecen | la France


[ edit ]

Edit - History - Print *** Report - Recent Changes - Search
Page last modified on 2025 August 21, 19:33