Я пытаюсь написать файлы JSON для составления карт FLOT, и я почти успешно! (ну, за некоторыми исключениями :-). Мне нужны данные, чтобы выплюнуть в этом формате:Запись данных JSON в определенном формате
{
"label": "ServiceOne",
"data": [[164, 35], [200, 35], 204, 35], [192, 84], [140, 54], [300, 66], [155, 110], [108, 101], [200, 94], [223, 99]]
}
Вместо этого, я получаю это:
{
"label:ServiceOne": [
"data:",
"[164, 35]"
]
}
форматирование, очевидно, неправильно, и это только набирает первые значения в результирующем.
Ниже приведен код, с которым я работаю. Я знаю, где проблема, я просто не могу ее исправить (я пробовал несколько итераций цикла через набор результатов). Любая помощь будет принята с благодарностью!
using System;
using System.Configuration;
using System.Data.SqlClient;
using System.IO;
using Newtonsoft.Json;
namespace ServiceInfo
{
public static class ServiceFlot
{
public static string servicename { get; set; }
public static string currentcount { get; set; }
public static string currentrating { get; set; }
public static void Main(string[] args)
{
try
{
SqlConnection cn = null;
cn = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlConn"].ToString());
cn.Open();
SqlCommand cmd = new SqlCommand((@"SELECT
ServiceInfo.subid,
ServiceInfo.servicename,
ServiceDetails.currentcount,
ServiceDetails.currentrating
FROM
ServiceInfo (NOLOCK)
LEFT OUTER JOIN
ServiceDetails (NOLOCK)
ON
ServiceInfo.subid = ServiceDetails.subid
WHERE
ServiceDetails.lastupdated > DateADD(n, -600, GETDATE())
ORDER BY
ServiceInfo.servicename"), cn);
var myreader = cmd.ExecuteReader();
while (myreader.Read())
{
if (myreader["subid"] != null)
{
servicename = myreader["servicename"].ToString();
currentcount = myreader["currentcount"].ToString();
currentrating = myreader["currentrating"].ToString();
getvars(servicename, currentcount, currentrating);
using (FileStream fs = File.Create(@"c:\" + servicename + ".json", 1024))
using (StreamWriter sw = new StreamWriter(fs))
using (JsonWriter jsonWriter = new JsonTextWriter(sw))
{
jsonWriter.Formatting = Formatting.Indented;
jsonWriter.WriteStartObject();
jsonWriter.WritePropertyName("label:" + servicename);
jsonWriter.WriteStartArray();
jsonWriter.WriteValue("data:");
for (int i = 0; i < 1; i++)
{
jsonWriter.WriteValue(currentcount + ", " + currentrating);
}
jsonWriter.WriteEnd();
jsonWriter.WriteEndObject();
}
}
}
cn.Close();
}
catch (Exception e)
{
// Print error message
Console.WriteLine("Error encountered: " + e.Message);
// Exit the application with exit code 1
System.Environment.Exit(1);
}
finally
{
}
}
}
}
Любая конкретная причина, по которой вы используете JsonWriter напрямую, вместо более удобного API? – millimoose
Я новичок в JSON и кажется простым в использовании. Не стесняйтесь рекомендовать то, что, по вашему мнению, может быть лучше, если я смогу добиться того же результата. – mynameisneo