JsonDataSource.JsonSource Property

Gets or sets an object that stores JSON data import settings.

Namespace: DevExpress.DataAccess.Json

Assembly: DevExpress.DataAccess.v21.1.dll

Declaration

[DefaultValue(null)]
[LocalizableCategory(DataAccessStringId.PropertyGridDataCategoryName)]
public JsonSourceBase JsonSource { get; set; }

Property Value

Type Default Description
JsonSourceBase

null

A JsonSourceBase descendant that specifies the JSON data location.

Remarks

Use the JsonSource property to specify the JSON data location. Set the JsonSource property to a JsonSourceBase descendant.

JSON Data Location JsonSource Property Value
Web-service endpoint A UriJsonSource object
Text file A UriJsonSource object
JSON string A CustomJsonSource object

Examples

The code sample below illustrates how to retrieve JSON data from the Web.

using DevExpress.DataAccess.Json;
using DevExpress.XtraReports.UI;
// ...
        public static JsonDataSource CreateDataSourceFromWeb() {
            var jsonDataSource = new JsonDataSource();
            // Specify the endpoint.
            jsonDataSource.JsonSource = new UriJsonSource(
                new Uri("https://raw.githubusercontent.com/DevExpress-Examples/DataSources/master/JSON/customers.json"));
            var root = new JsonSchemaNode();
            root.NodeType = JsonNodeType.Object;

            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))),
                new JsonSchemaNode(new JsonNode("Address", false, JsonNodeType.Property, typeof(string)))
            });

            root.AddChildren(customers);
            jsonDataSource.Schema = root;
            // Populate the data source with data.
            jsonDataSource.Fill();
            return jsonDataSource;
        }

The code sample below illustrates how to use JSON data from a file.

using DevExpress.DataAccess.Json;
using DevExpress.XtraReports.UI;
public static JsonDataSource CreateDataSourceFromFile() {
    var jsonDataSource = new JsonDataSource();
    // Specify the JSON file name.
    Uri fileUri = new Uri("customers.json", UriKind.RelativeOrAbsolute);
    jsonDataSource.JsonSource = new UriJsonSource(fileUri);
    // Populate the data source with data.
    jsonDataSource.Fill();
    return jsonDataSource;
}

The code sample below illustrates how to use JSON data from a string variable.

using DevExpress.DataAccess.Json;
using DevExpress.XtraReports.UI;
public static JsonDataSource CreateDataSourceFromText() {
    var jsonDataSource = new JsonDataSource();

    // Specify a string with JSON data.
    string json = "{\"Customers\":[{\"Id\":\"ALFKI\",\"CompanyName\":\"Alfreds Futterkiste\"," +
        "\"ContactName\":\"Maria Anders\",\"ContactTitle\":\"Sales Representative\"," +
        "\"Address\":\"Obere Str. 57\",\"City\":\"Berlin\",\"PostalCode\":\"12209\"," +
        "\"Country\":\"Germany\",\"Phone\":\"030-0074321\",\"Fax\":\"030-0076545\"}]," +
        "\"ResponseStatus\":{}}";

    // Specify the object that retrieves JSON data.
    jsonDataSource.JsonSource = new CustomJsonSource(json);
    // Populate the data source with data.
    jsonDataSource.Fill();
    return jsonDataSource;
}
See Also