ahmed_sa Ответов: 1

Как я могу создать строку формата JSON для моего случая ?


Мне нужно сделать формат строки json подходящим для оператора select следующим образом :

select FooterTable.LineNumber,FooterTable.ItemCode,FooterTable.Quantity,FooterTable.UniPrice,FooterTable.Total from

MasterTable inner join  FooterTable on MasterTable.Serial=FooterTable.Serial,MasterTable.BranchCode=FooterTable.BranchCode,MasterTable.Year=FooterTable.Year

where MasterTable.Serial=10 AND MasterTable.Year=2019 AND MasterTable.BranchCode=1


Нет необходимости в коде на любом языке

только струнные фоматы такие
{
ХХХХ
}

MasterTable
Серийный ПК
Год ПК
BranchCode ПК

FooterTable
Серийный ПК
Год ПК
BranchCode ПК
Номер_строки
Артикул
Количество
UniPrice
Весь

Как сгенерировать строку json следующим образом

Поля : Номер_строки,артикул,количество,UniPrice,общая указаны все поля
Нижний колонтитул нет полей из MasterTable .

Ключи : серийный номер:10,Год выпуска:2019,код ветви:1 от MasterTable .

Таблицы:MasterTable,FooterTable .



так что как сгенерировать строку формата json в соответствии с моим требованием выше

Что я уже пробовал:

{
"Details" : {
       "table" : "master_table",
       "fields" : {
               "itemCode" : "item-5050",
               "Quantity" : "10" ,
               "Price" : "50" ,
               "Total" : "500"
           },
       "keys":   {
           "BranchCode" : 1 ,
           "Year" : 2019 ,
           "Serial" : 2 
       }      
   }
}

1 Ответов

Рейтинг:
0

RickZeeland

Цитата:
Взгляните на это: JSON Utils: генерация C#, VB.Net, таблица SQL, Java и PHP из JSON[^] и выберите SQL Table.
Ваш JSON, вероятно, немного слишком сложен для веб-сайта, попробуйте упростить его следующим образом:
{
"details" :  {
"name":"Johnson, Smith, and Jones Co.",    
"amount":123456.78,    
"Remark":"Pays on time"
}
}

Или попробуйте этот, у которого есть больше вариантов: Конвертер JSON в SQL[^]
{
"id":999999,    
"name":"Johnson, Smith, and Jones Co.",    
"amount":123456.78,    
"Remark":"Pays on time"
}


ahmed_sa

Мой выше JSON-это правильно или что

ahmed_sa

это не имеет силы можете ли вы помочь мне быть действительным

ahmed_sa

смотрите я изменил json чтобы быть действительным в основном потоке

ahmed_sa

Несколько JSON-это подходит в моем случае или необходимо его менять, пожалуйста, помогите мне

ahmed_sa

мой JSON-строку неправильно

RickZeeland

Это трудно сказать, может быть, где-то существует приложение, которое принимает этот конкретный формат, не думайте, что это стандартизированная вещь ...

ahmed_sa

это хорошо я делаю json для заполнения сетки и мне нужно преобразовать ее в json
private static void FillGrids(Control.Контроль controlcollection с трансформированные ФРМ)
{

по каждому элементу (контроля Co в Управление)
{
если (Co является xDataGrid и усилитель; & (!Строку.IsNullOrEmpty ((xDataGrid)co).TableName) || !Строка.IsNullOrEmpty ((xDataGrid)co).SelectQuery)))
{
Связующее вещество.DataToGrid(frm.Controls, frm, (xDataGrid)co);
}
еще
{

}
если (со.Контроля.Граф и gt; 0 &&усилителя; ко.Имя != "pnlGridPanel" и усилитель; & Ко.Имя != "pnlMasterDetailsGrid")
{
FillGrids(со.Управления, ФРМ);
}
}

}
public static void DataToGrid(Control.Контроль controlcollection с трансформированные ФРМ, решетки xDataGrid )
{

строка SQL = "";

строковые критерии = "";
DataTable Relations = новый DataTable();

если (грид.SelectQuery != "")

SQL = Grid.SelectQuery;
еще xExceptions.DataGirdTableNameOrSelectQueryIsmissing();

Отношения = DataAccess.ExecuteDataTable(SqlFactory.Queries.Tables_GetRelations(ФРМ.Таблицы Сетки.Имятаблицы));

если (грид.SelectQuery.IndexOf(" WHERE ", StringComparison.OrdinalIgnoreCase) == -1)
{
Критерии = SqlFactory.Queries.GetGlobalCriteriaForGrid(frm, Grid.Имя Таблицы, Отношения);
SQL += " ГДЕ ";
SQL += критерии != "" ? Критерии : "1 = 1 ";
}
еще
{

Критерии = SqlFactory.Queries.GetGlobalCriteriaForGrid(frm, Grid.Имя таблицы, отношения, ложь);
если (критерии != "") SQL += " и " + критерии;
}

если (!строка.IsNullOrEmpty(Сетка.Фильтр) && !SQL.содержит(" 1 = 1 ")) SQL += " и " + сетка.Фильтр;

DataTable dt = DataAccess.ExecuteDataTable(SQL);


если (ФРМ.IsSaveAndCopy)
{
Сетка.ChangeAllRowsState(RowStates.Вставлено); //из-за F6
}
еще
{
// показать данные в виде Grid.datasource=dt;
Сетки.Привязка данных(ДТ);

}

}