Search notes:

System.Web.Script.Serialization.JavaScriptSerializer (class)

System.Web.Script.Serialization.JavaScriptSerializer can be used to parse JSON documents.
Note, Microsoft recommends to use newtonsoft's Json.NET for serialization and deserialization.

Parsing JSON with C-Sharp

The following C# example tries to demonstrate how JSON can be parsed by using the methods DeserializeObject() and Deserialize().
With DeserializeObject, the JSON document is parsed into a dynamic variable. The document's individual values need then to be looked up with parsed["field_name"] or parsed[array_pos].
When using Deserialize, a class is required onto which the JSON document's name/value pairs can be mapped. IMHO, this makes it a bit neater to then access the values because the data-type is found in the class and they can be accessed with parsed.field_name or parsed[array_pos].
using System;
using System.Web.Script.Serialization;

class C {

   #pragma warning disable CS0649 //  Field '…' is never assigned to, and will always have its default value …
   internal class JSONData {
      public Int32  num  ;
      public String txt  ;
      public String[] ary;
   }
   #pragma warning restore CS0649

   static void Main() {

       String JSONText = @"
       {
            ""num"" :   42,
            ""txt"" : ""Hello, World"",
            ""ary"" :[
                       ""zero"",
                       ""one"" ,
                       ""two""
            ]
       }";

       JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();

    //
    // Using DeserializeObject
    //
       dynamic result = jsonSerializer.DeserializeObject( JSONText );
    // Console.WriteLine(result.GetType().FullName);

       Console.WriteLine(result["num"]);
       Console.WriteLine(result["txt"]);
       Console.WriteLine(result["ary"][2]);

       Console.WriteLine("");
    //
    // Using Serialize
    //
       JSONData data = (JSONData) jsonSerializer.Deserialize( JSONText, typeof(JSONData) );

       Console.WriteLine(data.num);
       Console.WriteLine(data.txt);
       Console.WriteLine(data.ary[2]);
   }
}
Github repository .NET-API, path: /System/Web/Script/Serialization/JavaScriptSerializer.cs

Parson JSON with PowerShell

In order to use JavaScriptSerializer in PowerShell, the assembly System.Web.Extension must be loaded first:
$null = [System.Reflection.Assembly]::LoadWithPartialName('System.Web.Extensions')
With this assembly, a JavaScriptSerializer object can then be instantiated:
$jsonSerializer = new-object System.Web.Script.Serialization.JavaScriptSerializer
$json = $jsonSerializer.DeserializeObject('
{
   "num": 42,
   "txt": "Hello World",
   "ary": ["zero", "one", "two", "three"],
   "dct": {"elem_1": "foo", "elem_2": "bar", "elem_3": "baz"}
}')

write-host $json.num
write-host $json.txt
write-host $json.ary[1]
write-host $json.dct.elem_2

write-host $json.length
write-host $json.ary.length
write-host $json.dct.keys

See also

System.Runtime.Serialization.Json.DataContractJsonSerializer
The .NET namespace System.Text.Json (namespace)

Index

Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 8 attempt to write a readonly database in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php:78 Stack trace: #0 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(78): PDOStatement->execute(Array) #1 /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php(30): insert_webrequest_('/notes/Microsof...', 1749465017, '172.71.255.36', 'Mozilla/5.0 App...', 'renenyffenegger...') #2 /home/httpd/vhosts/renenyffenegger.ch/httpsdocs/notes/Microsoft/dot-net/namespaces-classes/System/Web/Script/Serialization/JavaScriptSerializer(134): insert_webrequest() #3 {main} thrown in /home/httpd/vhosts/renenyffenegger.ch/php/web-request-database.php on line 78