Learning ColdFusion 8: Javascript Object Notation (JSON) Part I - Data Conversion

<!--- Convert a string. --->
<p>
	String:
	#SerializeJSON( "Maria Bello" )#
</p>
 
<!--- Convert a number. --->
<p>
	Number:
	#SerializeJSON( 1967 )#
</p>
 
<!--- Convert a date. --->
<p>
	Date:
	#SerializeJSON( "April 18, 1967" )#
</p>
 
<!--- Convert a null value. --->
<p>
	Null:
	#SerializeJSON( JavaCast( "null", 0 ) )#
</p>
 
<!--- Convert a struct. --->
<cfset objActress = {
	Name = "Maria Bello",
	Attractive = "Extremely"
	} />
 
<p>
	Struct:
	#SerializeJSON( objActress )#
</p>
 
<!--- Convert an array. --->
<p>
	Array:
	#SerializeJSON(
		ListToArray( "Maria,Bello" )
		)#
</p>
 
<!--- Convert a function. --->
<cffunction name="Test">
	<cfreturn "Tested!" />
</cffunction>
 
<p>
	Function:
	#SerializeJSON( Test )#
</p>
 
<!--- Convert a ColdFusion component. --->
<!--- CFC (in other file):
<cfcomponent>
	<cfset THIS.Name = "TestCFC" />
	<cfset VARIABLES.PrivateName = "TestCFC" />
</cfcomponent>
--->
 
<p>
	CFC:
	#SerializeJSON(
		CreateObject( "component", "Test" )
		)#
</p>
 
<!--- Convert a query. --->
<cfset qTest = QueryNew( "" ) />
<cfset QueryAddColumn(
	qTest,
	"name",
	"CF_SQL_VARCHAR",
	ListToArray( "Maria", "Kim" )
	) />
 
<p>
	Query:
	#SerializeJSON(
		qTest
		)#
</p>
 
<!---
	Convert the query again, but this time don't
	create two struct entries. By sending the argument
	serializeQueryByColumn as true, we are using a
	WDDX standard query structure.
--->
<p>
	Query (true):
	#SerializeJSON(
		qTest,
		true
		)#
</p>
 
<!--- Convert a java object (String Buffer). --->
<p>
	Java:
	#SerializeJSON(
		CreateObject(
			"java",
			"java.lang.StringBuffer"
			).Init( "" )
		)#
</p>

For Cut-and-Paste