在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:mysqludf/lib_mysqludf_json开源软件地址:https://github.com/mysqludf/lib_mysqludf_json开源编程语言:C 100.0%开源软件介绍:LIB_MYSQLUDF_JSONJSON is an abbreviation of JavaScript Object Notation. JSON uses a subset of the ecmascript (javascript) language to denote javascript data structures (see also RFC 4627). As such, JSON is a text-oriented data format. JSON is particularly useful as a format for data exchange. It is mainly used in AJAX web applications as an alternative or in addition to XML. As such, JSON offers a few advantages over XML:
Usually, database data is mapped to the JSON format downstream of the database. For example, PHP offers an extension to convert PHP data structures to JSON. The disadvantage of that approach is that it usually requires one to iterate through the resultset to create an object structure out of it before that object structure can be encoded into the JSON format. Also, JSON encoding using an UDF is much faster. ###General notes of usage### There are a few things to keep in mind when using these UDF's. The JSON UDFs are designed for ease of use. They were designed with the assumption in mind that in many cases, only a simple and straightforward mapping is required. So, the UDFs try to make simple mappings easy and with as little overhead as possible. At the same time the UDFs will still be useful to generate more complicated mappings. Here's a general overview of general functionality offered by lib_mysqludf_json:
###Escaping and quoting of string data### Argument string values are normally automatically mapped to JSON double quoted strings. The string value is escaped to for a valid JSON value. The following characters are escaped by prefixing them with a \ or slash character:
Quoting and escaping can be avoided if the expression that returns the string starts with the prefix json_ or has an alias starting with that prefix. ###Mapping expressions to Object members### To make it as easy as possible to map rows to JSON objects, the However, that is not to say that the It is always possible to override the automatic member name mapping. This is done by including an alias to the expression inside the function call. FUNCTIONSThis library lib_mysqludf_json aims to offer a complete set of functions to map relational data into JSON format. The following functions are currently supported:
Use ###json_array([arg1,..,argN])### json_array takes a variable number of arguments and returns a string that denotes a javascript array with the arguments as members. #####[arg1,..,argN]##### A (possibly empty) list of values of any type.
#####returns##### A javascript expression that evaluates to an array. ####Installation#### Place the shared library binary in an appropriate location. Log in to mysql as root or as another user with sufficient privileges, and select any database. Then, create the function using the following DDL statement:
The function will be globally available in all databases. The deinstall the function, run the following statement:
####Examples#### Create an array of user data:
To obtain nested arrays, simply nest the function calls:
Note that arrays can be nested freely as described. The string returned by the inner
Sometimes one needs to avoid this automatic escaping. This would be the case for example when storing JSON strings directly in the database. If you want to avoid escaping to map a string value as is, use an alias with the prefix json_.
The alias is not required when the expression itself already has a name that starts with the ###json_members(name1,value1[,..,..,nameN,valueN])### This function can be used to turn an arbitrary list of name-value pairs into a list of JSON object members. Normally, one does not need this function directy, as the automatic mapping offered by json_object is usually sufficient. One of the things the automatic mapping does not handle well is nesting objects. The json_members function was designed especially for the purpose of easy nesting of objects, and also to work with array-type object memebers. #####name1,value1[,..,..,nameN,valueN]##### A list of name-value pairs. The name is used as a member JSON object member name. The value is used as the value of the member. #####returns##### A comma separated list of JSON member names with the associated JSON value. If the name is a constant expression, a check is performed to see if it yields a valid json member name. In that case, a modification is applied to qualified column names in that the qualifier is stripped from the member name. If the name is not a constant expression, no checking is performed at all. The value of the name argument is simply used as-is as member name, which may lead to syntactically invalid JSON expressions. ####Installation#### Place the shared library binary in an appropriate location. Log in to mysql as root or as another user with sufficient privileges, and select any database. Then, create the function using the following DDL statement:
The function will be globally available in all databases. The deinstall the function, run the following statement:
####Examples#### To obtain nested objects, use this function as an argument for
yields a string representing the following JSON object (indentation added for readability): {
last_update:"2006-02-15 05:03:42"
, film:{
"film_id":1
, "title":"ACADEMY DINOSAUR"
, "last_update":"2006-02-15 05:03:42"
}
, category:{
"category_id":6
, "name":"Documentary"
, "last_update":"2006-02-15 04:46:27"
}
} Note that the result of the inner
###json_object([arg1,..,argN])### json_object takes a variable number of arguments, maps them to JSON values and returns a concatenation of these. #####[arg1,..,argN]##### A (possibly empty) list of values of any type. The expression text passed as argument is used as member name. This is by design: it makes it very easy to render plain table data as json objects. The expression is checked to verify that it yields a valid javascript identifier. Sometimes, it is not appropriate to use the expression as member name. In those cases, one can use an alias inside the function call (see examples). The argument value is the value of the corresponing member.
#####returns##### A javascript expression that evaluates to an javascript value. ###Installation### Place the shared library binary in an appropriate location. Log in to mysql as root or as another user with sufficient privileges, and select any database. Then, create the function using the following DDL statement:
The function will be globally available in all databases. The deinstall the function, run the following statement:
###Examples### Create an object of user data:
Use the
###json_values([arg1,..,argN])### json_values takes a variable number of arguments and returns a string that denotes a concatenation of javascript objects #####[arg1,..,argN]##### A (possibly empty) list of values of any type.
#####returns##### A javascript value. ####Installation#### Place the shared library binary in an appropriate location. Log in to mysql as root or as another user with sufficient privileges, and select any database. Then, create the function using the following DDL statement:
The function will be globally available in all databases. The deinstall the function, run the following statement:
####Examples#### Create an javascript value:
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论