-1
嗨在下面的代碼中,我嘗試使用C#動態創建json並將json對象作爲客戶端傳遞。我不能夠得到確切的JSON格式,根據下面的靜態JSON.Can你請幫我解決這個問題。我的目標是使用C#獲取JSON格式。使用C#創建json格式
精確JSON格式:
{
"chart": {
"caption": "Quarterly Sales vs. Profit % in Last Year",
"subcaption": "Product-wise Break-up - Harry's SuperMart",
"xAxisName": "Quarter",
"pYAxisName": "Sales",
"sYAxisName": "Profit %",
"numberPrefix": "$",
"numbersuffix": "M",
"sNumberSuffix": "%",
"sYAxisMaxValue": "25",
"paletteColors": "#5598c3,#2785c3,#31cc77,#1aaf5d,#f45b00",
"baseFontColor": "#333333",
"baseFont": "Helvetica Neue,Arial",
"captionFontSize": "14",
"subcaptionFontSize": "14",
"subcaptionFontBold": "0",
"showBorder": "0",
"bgColor": "#ffffff",
"showShadow": "0",
"canvasBgColor": "#ffffff",
"canvasBorderAlpha": "0",
"divlineAlpha": "100",
"divlineColor": "#999999",
"divlineThickness": "1",
"divLineDashed": "1",
"divLineDashLen": "1",
"usePlotGradientColor": "0",
"showplotborder": "0",
"valueFontColor": "#ffffff",
"placeValuesInside": "1",
"showXAxisLine": "1",
"xAxisLineThickness": "1",
"xAxisLineColor": "#999999",
"showAlternateHGridColor": "0",
"legendBgAlpha": "0",
"legendBorderAlpha": "0",
"legendShadow": "0",
"legendItemFontSize": "10",
"legendItemFontColor": "#666666"
},
"categories": [
{
"category": [
{
"label": "Q1"
}
]
}
],
"dataset": [
{
"dataset": [
{
"seriesname": "Processed Food",
"data": [
{
"value": "30"
}
]
},
{
"seriesname": "Un-Processed Food",
"data": [
{
"value": "21"
}
]
}
]
},
{
"dataset": [
{
"seriesname": "Electronics",
"data": [
{
"value": "27"
}
]
},
{
"seriesname": "Apparels",
"data": [
{
"value": "17"
}
]
}
]
}
],
"lineset": [
{
"seriesname": "Profit %",
"showValues": "0",
"data": [
{
"value": "14"
}
]
}
]
}
C#:
object[,] arrData = new object[2, 3];
arrData[0, 0] = "Product A";
arrData[0, 1] = 567500;
arrData[0, 2] = 567500;
StringBuilder jsonData = new StringBuilder();
StringBuilder categories = new StringBuilder();
StringBuilder currentYear = new StringBuilder();
StringBuilder lineset = new StringBuilder();
jsonData.Append("{" +
//Initialize the chart object with the chart-level attributes..
"'chart': {"+
"'caption': 'Sales by Product'," +
"'numberPrefix': '$',"+
"'formatNumberScale': '1'," +
"'placeValuesInside': '1'," +
"'decimals': '0'" +
"},");
categories.Append("'categories': [" +
"{" +
"'category': [");
currentYear.Append("{" +
"'seriesname': 'Current Year'," +
"'data': [");
lineset.Append("'lineset': [" +
"{"
);
lineset.Append("{" +
"'seriesname': 'Current Year'," +
"'seriesname': 'Current Year'," +
"'data': [");
for (int i = 0; i < arrData.GetLength(0); i++)
{
if (i > 0)
{
categories.Append(",");
currentYear.Append(",");
}
categories.AppendFormat("{{" +
"'label': '{0}'" +
"}}", arrData[i, 0]);
currentYear.AppendFormat("{{" +
"'value': '{0}'" +
"}}", arrData[i, 1]);
lineset.AppendFormat("{{" +
// data level attributes
"'value': '{0}'" +
"}}", arrData[i, 2]);
}
categories.Append("]" +
"}" +
"],");
currentYear.Append("]" +
"}");
jsonData.Append(categories.ToString());
jsonData.Append("'dataset': [{");
jsonData.Append("'dataset': [");
jsonData.Append(currentYear.ToString());
jsonData.Append("]" +
"}");
jsonData.Append(lineset.ToString());
jsonData.Append("}" +
"]");
return jsonData.ToString();
提供最小可重現的例子。 –
使用諸如https://www.nuget.org/packages/newtonsoft.json/的Json庫來創建它。比使用字符串操作更可靠。 – Chris
@JeroenHeier查看我的編輯 – Santhosh