i have a soap response with this format
<soap:Envelope xmlns:soap="somelink">
<soap:Body>
<ns1:queryDataResponse xmlns:ns1="somelink">
<WindowTabData NumRows="3" TotalRows="3" StartRow="0" xmlns="somelink">
<DataSet>
<DataRow>
<field column="Value">
<val>JoeBlock</val>
</field>
<field column="Name">
<val>Joe Block</val>
</field>
</DataRow>
<DataRow>
<field column="Value">
<val>GardenUser</val>
</field>
<field column="Name">
<val>GardenUser BP</val>
</field>
</DataRow>
<DataRow>
<field column="Value">
<val>SeedFarm</val>
</field>
<field column="Name">
<val>Seed Farm Inc.</val>
</field>
</DataRow>
</DataSet>
<RowCount>3</RowCount>
<Success>true</Success>
</WindowTabData>
</ns1:queryDataResponse>
</soap:Body>
</soap:Envelope>
and i need to parse it into json with something like
[
{"value": "JoeBlock", "Name":"Joe Block"},
{"Value": "GardenUser", "Name": "GardenUser BP"},
{"Value": "SeedFarm", "Name": "Seed Farm Inc."},
...
]
anyone can give me an example to parse it?
i tried using domparser like
let parser = new DOMParser()
let doc = parser.parseFromString(xmls, 'application/xml')
doc.querySelectorAll('DataRow').forEach(cap => {
console.log('parser', cap.textContent)
})
but all i got was
["JoeBlockJoe Block", "GardenUserGardenUser BP", "SeedFarmSeed Farm Inc."]
please help how to extract field column as key and separate the value
this is what i ended up doing
xmlparser(xmls) {
let convert = require('xml-js')
let parser = new DOMParser()
let doc = parser.parseFromString(xmls, 'application/xml')
let x = doc.getElementsByTagName('DataSet')
let out = convert.xml2json(x[0].outerHTML, {
compact: true,
spaces: 4
})
let outp = JSON.parse(out)
this.CreateJson(outp.DataSet.DataRow)
},
CreateJson(data) {
let json = []
for (let i = 0; i < data.length; i++) {
let array = {}
for (let j = 0; j < data[i].field.length; j++) {
array[data[i].field[j]._attributes.column] =
data[i].field[j].val._text
}
json[i] = array
}
console.log('json created : ', JSON.stringify(json, null, 4))
}
not that elegant solution yeah, so im open to suggestion to make it more elegant
Related
I'm trying to use js2xmlparser (node.js) to transform an array of JSON objects into a custom XML file.
The source array looks like this:
[
{
"ID": "3233705000002165882",
"Quarter": "2020Q3",
"Pkg_Total": "0.00",
"Course_Each": "0.00"
},
{
"ID": "3233705000002165883",
"Quarter": "2020Q4",
"Pkg_Total": "2.50",
"Course_Each": "0.70"
},
{
"ID": "3233705000002165884",
"Quarter": "2021Q1",
"Pkg_Total": "34.00",
"Course_Each": "15.00"
}
]
I need the target XML to look like this:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<records>
<record id="3233705000002165882">
<column name="Quarter">
<value><![CDATA[2020Q3]]></value>
</column>
<column name="Pkg_Total">
<value><![CDATA[$ 0.00]]></value>
</column>
<column name="Course_Each">
<value><![CDATA[$ 0.00]]></value>
</column>
</<record>
<record id="3233705000002165883">
<column name="Quarter">
<value><![CDATA[2020Q4]]></value>
</column>
<column name="Pkg_Total">
<value><![CDATA[$ 2.50]]></value>
</column>
<column name="Course_Each">
<value><![CDATA[$ 0.70]]></value>
</column>
</<record>
<record id="3233705000002165884">
<column name="Quarter">
<value><![CDATA[2021Q1]]></value>
</column>
<column name="Pkg_Total">
<value><![CDATA[$ 34.00]]></value>
</column>
<column name="Course_Each">
<value><![CDATA[$ 15.00]]></value>
</column>
</<record>
</<records>
</response>
Any suggestions on how to configure js2xmlparser to do this? Or is there another node.js utility that can help with this transformation task? Thank you!
I solved this by writing my own custom function:
const json2XML = async (jsonFilePathName) => {
const jsonObj = await loadDataObj(jsonFilePathName)
let xmlRecords = '';
let xmlRecordBegin = '';
let xmlRecordFull;
jsonObj.forEach((newRecord) => {
const fieldNames = Object.keys(newRecord);
let colElements = '';
let colElement;
let colValue;
xmlRecordBegin = `<record id="${newRecord.ID}">`;
fieldNames.forEach((fieldName) => {
//iterate through all fieldNames except ID
if (fieldName !== 'ID') {
colValue = newRecord[fieldName];
colElement = `<column name="${fieldName}"><value><![CDATA[${colValue}]]></value></column>`;
colElements = colElements + colElement;
}
});
//end fieldNames.forEach((fieldName)
xmlRecordFull = xmlRecordBegin + colElements + '</record>';
//console.log('xmlRecordFull = ', xmlRecordFull);
xmlRecords = xmlRecords + xmlRecordFull;
});
//end jsonObj.forEach((newRecord)
xmlDoc = xmlDecl + xmlRootBegin + xmlRecordsBegin + xmlRecords + xmlRecordsEnd + xmlRootEnd;
return xmlDoc;
}
I am trying to serialize xml directly to json using JsonSerializer() but the namespace attributes are getting added as fields in the final json. Any suggestion on how to remove this? I tried with JsonConvert.Serialize() but some childnodes are missing in the serialized json.
A solution to your problem could be to deserialize your object to a dictionary first. This way you can add some logic in between the conversion to it.
Check the example below:
var xml = #"<?xml version='1.0' standalone='no'?>
<root>
<person id='1'>
<name>Alan</name>
<url>http://www.google.com</url>
</person>
<person id='2'>
<name>Louis</name>
<url>http://www.yahoo.com</url>
</person>
</root>";
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
var childNodeList = doc.DocumentElement.ChildNodes;
for (int i = 0; i < childNodeList.Count; i++)
{
var nodes = childNodeList.Item(i).ChildNodes;
var dict = new Dictionary<string, object>();
foreach (XmlNode node in nodes)
{
var serializedNode = JsonConvert.SerializeXmlNode(node);
var prop = JsonConvert.DeserializeObject<IDictionary<string, object>>(serializedNode).FirstOrDefault();
dict.Add(prop.Key, prop.Value ?? " ");
}
Console.WriteLine($"item {i}");
Console.WriteLine(string.Join("\r\n", dict.Select(e => $"{e.Key}: {e.Value}")));
}
Output:
//item 0
//name: Alan
//url: http://www.google.com
//item 1
//name: Louis
//url: http://www.yahoo.com
I have an input XML as below:
<Options>
<Series>
<Series>
<Type>Bar</Type>
<TargetAxisIndex>1</TargetAxisIndex>
</Series>
<Series>
<Type>Line</Type>
<TargetAxisIndex>2</TargetAxisIndex>
</Series>
</Series>
<Title>Test title</Title>
</Options>
I am using JsonConvert.SerializeXmlNode() and want to have my output as below:
{"Series":
{
"0": {"Type":"Bar","TargetAxisIndex":"1"},
"1": {"Type":"Line","TargetAxisIndex":"2"}
}
"Title":"Test title"
}
Is there a way of achieving this? Basically i want the node to be serialized as index.
If you don't mind going through an intermediate projection through an anonymous class, and switching from XmlDocument to the more Linq-friendly XDocument, you'll be able to leverage the Select overload which provides the index, and then apply .ToDictionary to get the Json shape you need:
var root = XDocument.Load(pathToMyDocument)
.Root;
var myObject = new
{
Title = root.Element("Title").Value,
Series = root.Element("Series")
.Elements("Series")
.Select((node, idx) =>
new
{
Node = node,
Index = idx
})
.ToDictionary(
e => e.Index,
e => new
{
Type = e.Node.Element("Type").Value,
TargetAxisIndex = e.Node.Element("TargetAxisIndex").Value
})
};
var json = JsonConvert.SerializeObject(myObject);
Result:
{
"Title": "Test title",
"Series": {
"0": {
"Type": "Bar",
"TargetAxisIndex": "1"
},
"1": {
"Type": "Line",
"TargetAxisIndex": "2"
}
}
}
Another alternative may be to do the dictionary and indexing manipulation in XSLT, before using SerializeXmlNode, by using the position() function, although you'll need to subtract 1 - it's one based.
I'm trying to convert an array of objects (nested) to JSON string.
Here is my JSON output:
[{
"Width": 570,
"SessionID": 2003404006158805,
"Price": "69,90",
"PageCount": 24,
"Pages": [{
"ID": 1,
"TemplateID": 0,
"PageType": "cover",
"TextContainers": [],
"ImageContainers": []
}, {
"ID": 2,
"TemplateID": 1001,
"PageType": "single",
"TextContainers": [],
"ImageContainers": []
}, {
"ID": 3,
"TemplateID": 0,
"PageType": "double",
"TextContainers": [],
"ImageContainers": [{
"Width": 570,
"IsBG": true,
"Brightness": 0,
"Contrast": 0,
"PosX": null,
"ScaleX": null,
"Height": 284,
"ID": -1,
"BlackWhite": 0,
"PosY": null,
"HasPhoto": false,
"ScaleY": null,
"PhotoID": null
}]
}, {
"ID": 4,
"TemplateID": 0,
"PageType": "double",
"TextContainers": [],
"ImageContainers": [{
"Width": 570,
"IsBG": true,
"Brightness": 0,
"Contrast": 0,
"PosX": null,
"ScaleX": null,
"Height": 284,
"ID": -1,
"BlackWhite": 0,
"PosY": null,
"HasPhoto": false,
"ScaleY": null,
"PhotoID": null
}]
}],
"ProductSubID": 0,
"Height": 620,
"ProductID": 0
}]
And when I'm trying to convert this string to XML (at server side) comes out like this:
<?xml version="1.0" encoding="UTF-8" ?>
<0>
<Width>570</Width>
<SessionID>2003404006158805</SessionID>
<Price>69,90</Price>
<PageCount>24</PageCount>
<Pages>
<ID>1</ID>
<TemplateID>0</TemplateID>
<PageType>cover</PageType>
</Pages>
<Pages>
<ID>2</ID>
<TemplateID>1001</TemplateID>
<PageType>single</PageType>
</Pages>
<Pages>
<ID>3</ID>
<TemplateID>0</TemplateID>
<PageType>double</PageType>
<ImageContainers>
<Width>570</Width>
<IsBG>true</IsBG>
<Brightness>0</Brightness>
<Contrast>0</Contrast>
<PosX />
<ScaleX />
<Height>284</Height>
<ID>-1</ID>
<BlackWhite>0</BlackWhite>
<PosY />
<HasPhoto>false</HasPhoto>
<ScaleY />
<PhotoID />
</ImageContainers>
</Pages>
<Pages>
<ID>4</ID>
<TemplateID>0</TemplateID>
<PageType>double</PageType>
<ImageContainers>
<Width>570</Width>
<IsBG>true</IsBG>
<Brightness>0</Brightness>
<Contrast>0</Contrast>
<PosX />
<ScaleX />
<Height>284</Height>
<ID>-1</ID>
<BlackWhite>0</BlackWhite>
<PosY />
<HasPhoto>false</HasPhoto>
<ScaleY />
<PhotoID />
</ImageContainers>
</Pages>
<ProductSubID>0</ProductSubID>
<Height>620</Height>
<ProductID>0</ProductID>
</0>
But I need it to be like:
<pages>
<page>
</page>
<page>
</page>
</pages>
This is my AS code to convert Object arrays into JSON
var Pages:Array = [];
var Books:Array = [];
var JBook:Object = new Object();
JBook.Width = Global.BOOK_WIDTH;
for(var i:Number = 0; i<Global.PAGES.length; i++)
{
var Page:PageVO = Global.PAGES[i] as PageVO;
var JPage:Object = new Object();
JPage.ID = Page.ID;
var ImageContainers:Array = [];
var TextContainers:Array = [];
var Template:TemplateVO = Page.ACTIVE_TEMPLATE;
for(var j:Number = 0; j<Template.IMAGE_CONTAINERS.length; j++)
{
var ImageContainer:ImageContainerVO = Template.IMAGE_CONTAINERS[j] as ImageContainerVO;
var JImageContainer:Object = new Object();
JImageContainer.ID = ImageContainer.ID;
ImageContainers.push(JImageContainer);
}
for (var m:Number = 0; m<Template.TEXT_CONTAINERS.length; m++)
{
var TextContainer:TextContainerVO = Template.TEXT_CONTAINERS[m] as TextContainerVO;
var JTextContainer:Object = new Object();
JTextContainer.ID = TextContainer.ID;
}
JPage.TextContainers = TextContainers;
JPage.ImageContainers = ImageContainers;
Pages.push(JPage);
}
var Photos:Array = [];
for(var p:Number = 0; p<Global.PHOTOS.length; p++ )
{
var Photo:PhotoVO = Global.PHOTOS[p] as PhotoVO;
var JPhoto:Object = new Object();
JPhoto.BMP = ImageUtils.BitmapToBase64(Photo.BMP.bitmapData);
JPhoto.UseCount = Photo.USE_COUNT;
JPhoto.ID = Photo.ID;
Photos.push(JPhoto);
}
//JBook.Photos = Photos;
JBook.Pages = Pages;
JSON = com.adobe.serialization.json.JSON.encode(Books);
Any idea why it's rendering JSON string like they are not in the same node (seperate node for every page item)?
Hope I've been clear. Thanks.
Probably the easiest way to convert from an AS3 object to a JSON string is to use the JSON class from as3corelib.
Example usage:
var jsonString:String = JSON.encode(myDataObject);
It is probably best not to write your own parser, as the as3corelib JSON parser has been worked on and used by many people, for quite some time.
EDIT: #dpcao mentioned that you don't even need an external library anymore, Adobe introduced a new JSON class available in FlashPlayer 11.
Example usage:
var jsonString:String = JSON.stringify(myDataObject);
Are you iterating through a native object? Or through an XML Object? Because if you're iterating an [XMLList][1] you should use length(), not length (they named it as a function to avoid name collections)
But honestly, use JSONLib, or [natively][2], with Flash Player 10.3 or above, use it natively. It mimics the javascript api, with JSON.parse and JSON.stringify respectively. This shouldn't be an issue with JSON serialization, you might have a bug either server side or client side with your serialization. I would suggest adding a serialize() function to each of your objects -- this makes it easier in the long run to maintain anyways. ie:
class PageVO {
function serialize():Object {
return {
ID: some_id,
Template_ID: some_template_id,
// add image containers here
}
}
}
This will make it easier to debug individual objects to see where the problem is coming from. As it looks, there's no reason why your code shouldn't work. However, there might be issues with the actionscript serialization class and not adding a variable node: i.e. serializing [], rather than { "name": value }. Try the native serializer and see what happens. (don't forget -swf-version=16)
I have a requirement and I am hoping Google Maps API will have a solution. I have never used Google Maps API - so I am very new to this.
On the website homepage there is a form, when a user comes, I want the following things to happen:
1) The city field should be populated with users city based on IP
2) There is a second field called store name - when the user starts typing the store name - I want to fetch all business listings with that name in that city and show it as a drop down from which the user can select the appropriate branch. There is no need for anything to be shown on the map.
Egs - If a user in houston starts typing McDonalds, the following business listings should start showing up
McDonalds, 12 Pearland Ave, Houston TX
McDonalds, 2600 Bary Area Blvd, Houston TX
McDonalds, 262 Clearlake Blvd, Houston TX
Also when we get the address for a business listing from Google API - do we get it as one String and we need to parse it or do we get it different fields Street Name, City, State, Zip code etc
Any information or examples will be really appreciated
Thanks
I don't think you want Google Maps. First of all the terms of use do not allow any use other than displaying things on a Google Map on a publicly accessible webpage, second, there is another Google API that does exactly what you need: the Client location API: http://code.google.com/apis/ajax/documentation/#ClientLocation
Concerning the "businesses": You're going to have to source that data from somewhere - I do not believe google has a service for that. Perhaps you could simply use the Google Search API and some logic to find only businesses (http://code.google.com/apis/ajaxsearch/)
EDIT: I for the businesses, perhaps you could take a look at this sample: http://code.google.com/apis/ajaxsearch/samples.html#local-search
updated: here is an example of using the google clientlocation api and localsearch using jsonp.
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="http://www.google.com/jsapi?key=ABQIAAAALDWeTDQHOJCbCf0JnUqL8BT2yXp_ZAY8_ufC3CFXhHIE1NvwkxQA7AE8xB9MyWgHECPY2qimOp7BUQ"></script>
<script src="scripts/clientLocation.js" type="text/javascript"></script>
<script src="scripts/localSearch.js" type="text/javascript"></script>
<script type="text/javascript">
function $g(id) {
return document.getElementById(id);
}
function displayLocation(latitudeEl, longitudeEl, cityEl, regionEl, countryEl, country_codeEl) {
var cloc = new ClientLocation.Location(google.loader.ClientLocation);
if (latitudeEl) latitudeEl.innerHTML = cloc.latitude;
if (longitudeEl) longitudeEl.innerHTML = cloc.longitude;
if (cityEl) cityEl.innerHTML = cloc.address.city;
if (regionEl) regionEl.innerHTML = cloc.address.region;
if (country) country.innerHTML = cloc.address.country;
if (country_codeEl) country_codeEl.innerHTML = cloc.address.country_code;
}
function localSearch(term, callback, context) {
var cloc = new ClientLocation.Location(google.loader.ClientLocation);
var searchUrl = 'http://www.google.com/uds/GlocalSearch?callback=' + callback + '&context=' + context + '&hl=en&q=' + encodeURIComponent(term) + '&sll=' + cloc.latitude + ',' + cloc.longitude + '&key=ABQIAAAALDWeTDQHOJCbCf0JnUqL8BT2yXp_ZAY8_ufC3CFXhHIE1NvwkxQA7AE8xB9MyWgHECPY2qimOp7BUQ&v=1.0';
// http://jaybyjayfresh.com/2007/09/17/using-script-tags-to-do-remote-http-calls-in-javascript/
scriptLoaded = function() {
removeNode(newScript);
};
var headID = document.getElementsByTagName("head")[0];
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.onload = scriptLoaded;
newScript.src = searchUrl;
headID.appendChild(newScript);
}
function search() {
var term = $g("txtSearch").value;
localSearch(term, "displayResults", "0");
}
function displayResults(context, results, status, details, unused) {
var titles = [];
for (var i = 0; i < results.results.length; i++) {
// this cast is not necessary, just here to illustrate
// vs intellisense and reduce coding errors.
var result = new LocalSearch.Result(results.results[i]);
titles.push(result.title);
}
$g("searchResults").innerHTML = titles.join("</br>");
}
function init() {
displayLocation($g("latitude"), $g("longitude"), $g("city"), $g("region"), $g("country"), $g("country_code"));
}
</script>
</head>
<body onload="init()">
<form id="form1" runat="server">
<div>
latitude : <span id="latitude"></span>
<br />
longitude : <span id="longitude"></span>
<br />
city : <span id="city"></span>
<br />
region : <span id="region"></span>
<br />
country : <span id="country"></span>
<br />
country_code : <span id="country_code"></span>
<br />
</div>
<input type="text" id="txtSearch" /><input type="button" id="btnSearch" value="get results"
onclick="search();" /><br />
<div id="searchResults">
</div>
</form>
</body>
</html>
// <copyright file="clientLocation.js" company="Sky Sanders">
// This source is placed in the Public Domain.
// http://skysanders.net/subtext
// Attribution is appreciated.
// </copyright>
/*
object literal format for google.loader.clientlocation
{
"latitude": 33.324,
"longitude": -111.867,
"address": {
"city": "Chandler",
"region": "AZ",
"country": "USA",
"country_code": "US"
}
}
*/
var ClientLocation = {};
ClientLocation.Address = function() {
/// <field name="city" type="String" />
/// <field name="region" type="String" />
/// <field name="country" type="String" />
/// <field name="country_code" type="String" />
/// <returns type="ClientLocation.Address"/>
if (arguments.length > 0) {
this.city = arguments[0].city;
this.region = arguments[0].region;
this.country = arguments[0].country;
this.country_code = arguments[0].country_code;
return;
}
else {
this.city = "";
this.region = "";
this.country = "";
this.country_code = "";
}
}
ClientLocation.Location = function() {
/// <field name="latitude" type="Number" />
/// <field name="longitude" type="Number" />
/// <field name="address" type="ClientLocation.Address" />
if (arguments.length > 0) {
this.latitude = arguments[0].latitude;
this.longitude = arguments[0].longitude;
this.address = arguments[0].address;
}
else {
this.latitude = 0;
this.longitude = 0;
this.address = undefined;
}
}
// <copyright file="localSearc.js" company="Sky Sanders">
// This source is placed in the Public Domain.
// http://skysanders.net/subtext
// Attribution is appreciated.
// </copyright>
/*
GlocalSearch result
{
"GsearchResultClass": "GlocalSearch",
"viewportmode": "computed",
"listingType": "local",
"lat": "33.389689",
"lng": "-111.853909",
"accuracy": "8",
"title": "Best \u003cb\u003eBuy\u003c/b\u003e",
"titleNoFormatting": "Best Buy",
"ddUrl": "http://www.google.com/maps....",
"ddUrlToHere": "http://www.google.com/maps?....",
"ddUrlFromHere": "http://www.google.com/maps?....",
"streetAddress": "1337 South Alma School Road",
"city": "Mesa",
"region": "AZ",
"country": "United States",
"staticMapUrl": "http://mt.google.com/mapdata?....",
"url": "http://www.google.com/maps/place?source....",
"content": "",
"maxAge": 604800,
"phoneNumbers": [{
"type": "",
"number": "(480) 644-7139"
},
{
"type": "",
"number": "(480) 464-0444"
}],
"addressLines": ["1337 South Alma School Road", "Mesa, AZ"]
}
*/
var LocalSearch = {};
LocalSearch.PhoneNumber = function() {
/// <field name="type" type="String"/>
/// <field name="number" type="String"/>
/// <returns type="LocalSearch.PhoneNumber"/>
if (arguments.length > 0) {
this.type = arguments[0].type;
this.number = arguments[0].number;
}
else {
this.type = "";
this.number = "";
}
}
LocalSearch.Result = function() {
/// <field name="GsearchResultClass" type="String"/>
/// <field name="viewportmode" type="String"/>
/// <field name="listingType" type="String"/>
/// <field name="lat" type="String"/>
/// <field name="lng" type="String"/>
/// <field name="accuracy" type="String"/>
/// <field name="title" type="String"/>
/// <field name="titleNoFormatting" type="String"/>
/// <field name="ddUrl" type="String"/>
/// <field name="ddUrlToHere" type="String"/>
/// <field name="ddUrlFromHere" type="String"/>
/// <field name="streetAddress" type="String"/>
/// <field name="city" type="String"/>
/// <field name="region" type="String"/>
/// <field name="country" type="String"/>
/// <field name="staticMapUrl" type="String"/>
/// <field name="url" type="String"/>
/// <field name="content" type="String"/>
/// <field name="maxAge" type="Number"/>
/// <field name="phoneNumbers" type="Array"/>
/// <field name="addressLines" type="Array"/>
// <returns type="LocalSearch.Result"/>
if (arguments.length > 0) {
this.GsearchResultClass = arguments[0].GsearchResultClass;
this.viewportmode = arguments[0].viewportmode;
this.listingType = arguments[0].listingType;
this.lat = arguments[0].lat;
this.lng = arguments[0].lng;
this.accuracy = arguments[0].accuracy;
this.title = arguments[0].title;
this.titleNoFormatting = arguments[0].titleNoFormatting;
this.ddUrl = arguments[0].ddUrl;
this.ddUrlToHere = arguments[0].ddUrlToHere;
this.ddUrlFromHere = arguments[0].ddUrlFromHere;
this.streetAddress = arguments[0].streetAddress;
this.city = arguments[0].city;
this.region = arguments[0].region;
this.country = arguments[0].country;
this.staticMapUrl = arguments[0].staticMapUrl;
this.url = arguments[0].url;
this.content = arguments[0].content;
this.maxAge = arguments[0].maxAge;
this.phoneNumbers = arguments[0].phoneNumbers;
this.addressLines = arguments[0].addressLines;
}
else {
this.GsearchResultClass = "";
this.viewportmode = "";
this.listingType = "";
this.lat = "";
this.lng = "";
this.accuracy = "";
this.title = "";
this.titleNoFormatting = "";
this.ddUrl = "";
this.ddUrlToHere = "";
this.ddUrlFromHere = "";
this.streetAddress = "";
this.city = "";
this.region = "";
this.country = "";
this.staticMapUrl = "";
this.url = "";
this.content = "";
this.maxAge = 0;
this.phoneNumbers = [];
this.addressLines = [];
}
}
If you're only looking up restaurants, try using Yelp's API. You can search for a business by its name within a search radius. Their API is also simpler and easier to use than google's.
http://www.yelp.com/developers/documentation/search_api