Skip to main content
A newer version of this page is available. .

JsonSchemaNode() Constructor

Initializes a new instance of the JsonSchemaNode class.

Namespace: DevExpress.DataAccess.Json

Assembly: DevExpress.DataAccess.v19.1.dll

Declaration

[Browsable(false)]
public JsonSchemaNode()

Remarks

Use this constructor to create the data source schema‘s root node:

  • The root node does not define a JSON object’s node.
  • The root node has child nodes that define the JSON object’s nodes.

The following code sample demonstrates a root node.

using DevExpress.DataAccess.Json;
using DevExpress.XtraReports.UI;
//...
private JsonDataSource CreateDataSourceFromWeb()
{
    var jsonDataSource = new JsonDataSource();
    //Specify the data source location
    jsonDataSource.JsonSource = new UriJsonSource(new Uri("http://northwind.servicestack.net/customers.json"));

    // Define the Customers node's scheme to retrieve only required child nodes and properties
    var customers = new JsonSchemaNode() {NodeType=JsonNodeType.Array, Name="Customers", Selected=true };
    customers.AddChildren(new[] {
        new JsonSchemaNode(new JsonNode("CustomerID", true, JsonNodeType.Property, typeof(string))) { DisplayName = "Customer ID" },
        new JsonSchemaNode() {
            Name =  "CompanyName",
            Selected = true,
            NodeType = JsonNodeType.Property,
            Type = typeof(string)
        },
        new JsonSchemaNode(new JsonNode("ContactTitle", true, JsonNodeType.Property, typeof(string))),
        //Set the JsonNode.Selected to false not to retrieve the Address field
        new JsonSchemaNode(new JsonNode("Address", false, JsonNodeType.Property, typeof(string)))
    });


    // Create a root schema node
    var root = new JsonSchemaNode();
    root.NodeType = JsonNodeType.Object;
    // Add the defined Customers schema node to the root node
    root.AddChildren(customers);
    // Specify the JsonDataSource's Scheme property to retrieve data only from the Customers node
    jsonDataSource.Schema = root;

    // Retrieve data from the JSON data source
    jsonDataSource.Fill();
    return jsonDataSource;
}
See Also