Я видел довольно аккуратную статью об этом ... так что если вам это нравится:
CREATE PROC [dbo].[spUpdateMarks]
@inputJSON VARCHAR(MAX) -- '[{"ID":"1","C":"60","CPP":"60","CS":"60"}]'
AS
BEGIN
-- Temp table to hold the parsed data
DECLARE @TempTableVariable TABLE(
element_id INT,
sequenceNo INT,
parent_ID INT,
[Object_ID] INT,
[NAME] NVARCHAR(2000),
StringValue NVARCHAR(MAX),
ValueType NVARCHAR(10)
)
-- Parse JSON string into a temp table
INSERT INTO @TempTableVariable
SELECT * FROM parseJSON(@inputJSON)
END
Попробуйте посмотреть здесь:
https: // www.simple-talk.com/sql/t-sql-programming/consuming-json-strings-in-sql-server/
Здесь есть полный проект ASP.Net об этом : http://www.codeproject.com/Articles/788208/Update-Multiple-Rows-of-GridView-using-JSON-in-ASP
Я предполагаю, что вы хотите проверить, что context
получает соответствующий id
, который представляет собой верхний регистр String
, начинающийся с name
и сопровождаемый 18 символами A-Z
или цифрами.
Я не знаю, какую платформу тестирования вы используете, но вы можете проверить id
с помощью Регулярного выражения :
// ignore this, just require the 'uniqid' module
const uniqid = str => `${str}4n5pxq24kpiob12og9`;
const addId = ({name}) => {
return context => {
// Generate a uniqid and add it user
context.data['id'] = uniqid(name).toUpperCase();
return context;
};
};
// addId should add an appropriate id to `user.data.id`
const {data: {id}} = addId({name: 'Annie'})({data: {}});
console.assert(/^ANNIE[A-Z\d]{18}$/.test(id));
[ 1119] Редактировать: Поскольку вы используете mocha
, вы также можете добавить в chai
и использовать его метод match
следующим образом: