JQuery :: Associative Array To JSON?
Jun 21, 2009I have been trying to figure out how I could go from an associative array to JSON. Is there a function for this?
View 10 RepliesI have been trying to figure out how I could go from an associative array to JSON. Is there a function for this?
View 10 RepliesYour table-driven application has a MySQL table on the server side and you want a Javascript associative array on the client side to do rapid look-ups.For example: My application uses the value selected from the form’s drop-down menu to choose which other form fields to hide or show. This choice of a 'Long Form' is table-driven from product data in a MySQL table.
Convert the MySQL table to an associative array in JavaScript.I am using the jQuery library to manage the presentation and form validation on the client side and PHP and MySQL on the server side.Since a JavaScript Object is an associative array and the MySQL table is being used as a look-up table (associative array) I use the PHP function json_encode to create a JSON string - JSON is JavaScript Object Notation - on the server which is then evaluated as a JavaScript Object on the client. The two parts (server and client) of the code are listed below.All very straightforward then. So why the blog?This is what I do (here's the PHP code):
do { $key = $row['ProductKind'];
$value = ($row['LongForm'] ? True : False);
$arr[$key] = $value;
[code]...
As a newcomer to jQuery this is a good opportunity to show my appreciation to John Resig and the people that have contributed to the jQuery library ... not forgetting those who have integrated all the MySQL and JSON stuff into PHP. It's all very neat ... when you get to understand it!You could just eval(data) to turn the JSON string into a JavaScript Object (a.k.a. associative array), but JSON.parse protects your code against evaluating malicious scripts that could be embedded in the JSON string. This function is found in the json2.js downloadable until included in native browser JavaScript engines.The PHP Booleans translate automatically into JavaScript Boolean types.
[Skip this: My application has a MySQL table of product categories that tell me whether I need to present the administrator with a long form or a short form in the HTML. So, as products are added over time, I want to the administrator to choose whether a new product category can take the short form plus some default values or will require the explicit input of all product values in the long form. As the administrator assigns a category to a new product - and changes his mind half a dozen times - I don’t want to keep on going to the server to do the look-up but want to have the table in Javascript to keep the form presentation responsive. Also, the MySQL tables are on a third party’s server remote from the web server.]
How I can convert a string to a json array.
start code:
The problem is that .css treats snip[1] as a string but I need it to handle it as a json array.
Bad: .css
Good: .css
I want to create an associative array dynamically pulling the index values from an array (propertyArray); Associative array is created inside create function and then returned. But after it is returned, I cant use index names to retrieve values. It returns undefined as below code shows.
Code JavaScript:
var propertyArray=["a","b","c"];
function create(){
var array=[];
[code]....
I am building a customised javascript prototype to sort an associative array on the array key (in ascending order). Basically, I am separating the array keys into a separate array and then using .sort() to sort the keys and then reassembling the original associative array elements according to the sorted keys array.
The sorting works ok except that when I run the test code below, the outputed sorted associative array has an extra element at the end of the array whose key is the name of the prototype function and the value for that element is the function code itself. Obviously I am misunderstanding something about associative arrays or how javascript prototypes work.
[Code]...
I need a way to store an associative array in a cookie. Or maybe JSON encoded string. I am using jquery.
var cookie=[];
cookie["product_1"]=[];
cookie["product_1"][cookie["product_1"].length]=12;
$.cookie('uploads', $.toJSON(cookie), { path: '/', expires: 10 });
New to javascript here. I'm trying to do something that would be very easy to do in php, but is quite hard in javascrpit due to the lack of support of associative array.
[Code]...
push() to add clickedElementId as a value associated to a numeric key, but then how would you remove a specific element from the array? How would you approach such a typical algo in javascript? Regards,
Is it possible to have an Object as the key for an Associative array
like in the following example....
function Obj(var1, var2)
{
this.var1 = var1;
this.var1 = var1;
}
function test() {
var sectionArray = new Array();
var obj = new Obj("c","k");
var obj2 = new Obj("3","n");
var obj3 = new Obj("v","qk");
sectionArray[obj] = "king";
sectionArray[obj2] = "queen";
sectionArray[obj3] = "joker";
alert(sectionArray[obj]);
}
This does not give any error but the alert says "joker" instead of
"king". Is there anything wrong with my code or is an Object something
that just can not be used as a key.
If it is the latter can someone please suggest another way for me to do
it? Can I use a concatenated String instead of an object? My only
problem then is how would I extract the values from the String, does
JavaScript have a tokenizer method like Java?
I am having a problem with this test html below. When I enter a correct
city I keep getting an "Object expected" error on the town field....
Something like this:
['level1key':['level2key:'value']]
That is the value itself is any object.
How can I check if a key is defined in an associative array?
var users = new array();
users["joe"] = "Joe Blow";
users["john"] = "John Doe";
users["jane"] = "Jane Doe";
function isUser (userID)
{
if (?????)
{ alert ("This is a valid ID"); }
else
}
But what goes in place of the ????
I m using an AutoComplete Textbox..!! i want to pass id and value to the next page..!!
[Code]...
am just trying to learn javascript and my friend gave me a little assignment to try and figure out. i am having trouble figuring it outbasically i just want to display the information in my associative array, into an html table.
var NFC_east = new Array();
NFC_east[0]=["Giants", 16, 0, "Eli Manning"];
NFC_east[1]=["Cowboys", 0, 16, "Tony Romo"];
[code]....
I'm trying to create a multi-dimensional associative array that has some of its data created dynamically. The code I've currently got is as follows (using JQuery to retrieve form element values):
Code JavaScript:
var data = {
label: $('#label').val(),
child_float: function() {
[code]....
.. if its values were not being created dynamically. However as you can tell that isn't what is being generated at the moment, as there's no opening/closing brace before/after the child_float's member variables. Any ideas what changes I need to make in order make the child_float behave as intended?
Lets assume the following object
Code:
var x = {
y: {
z: 10
}
} ;
Next, I need to retrieve the value '10', but the only thing I have is one string as a key For example (this doesn't work):
Code:
var str = '[y][z]' ; // or 'y.z'??
alert(x[str]) ; // should alert 10
Can this be done using a single string as input for x ?
UPDATE: a solution which comes close to what I was looking for is
Code:
var str = "x['y']['z']" ;
alert(eval(str));
I have an associative array like this:
arr[x1]=30; arr[x2]=20;arr[x3]=40;arr[x4]=10;
I want the sort function to sort keys in ascending order of the values
on the right hand side with the following result:
x4,x2,x1,x3
I'm trying to create an associative array in javascript from within the loop that sets up my html table. I can't get my head around assigning the associative key-value pair (probably not the best way of putting it). I've written the below in php. What's the equivalent in javascript? The => is the part that's baffling me.
PHP Code:
$test_array[] = array ([INDENT]'seller_id'=>$seller_details[$column]['seller_id'],
'products_id' => $item_details[$idval]['products_id'],
'shipping_price' =>$item_details[$idval]['shipping_price'])[/INDENT]
I am having trouble converting my multidimensional array to JSON. I have the following code:
var questions = [];
$('.questionContainer').each(function(i) {
questions[i] = [];
questions[i]["question"] = "hey";
[Code]...
How can I adequately parse a JSON response I'm getting from the server, which happens to be an array?
The array I'm getting back is actually this one:
[{"photo":{"created_at":"2011-02-26T18:40:00Z","id":5,"name":"Natalie_Portman.jpg","updated_at":"2011-02-26T18:40:00Z"}},{"photo":{"created_at":"2011-02-26T18:40:14Z","id":6,"name":"scarlett-johansson-.jpg","updated_at":"2011-02-26T18:40:14Z"}}]
I believe this one is valid JSON, but my attempts to parse it are always failing when I do it like this:
success:
function(data, textStatus, xhr)
{
var photos = jQuery.parseJSON(data);
alert(photos);
},
The above code displays 'null', and the documentation says a null occurs when the JSON isn't valid. so, what's going on ?
I need to know the codes to parse as well as access the values in the parsed response.
I've a function build in PHP that return this JSON: [URL]. In the HTML page where this PHP function is called via jQuery AJAX I have this code: [URL], this populate two select as you notice, something like this: [URL], But I need the same but in this way: [URL] value come from Json array position.
View 2 Replies View RelatedI am writing this code
<script type="text/javascript">
$(document).ready(function() {
var obj = jQuery.parseJSON('{"a":"sss","b":"sss","question":"whi?"}');
//alert(obj.question);
});
</script>
How could I know how many objects variable obj has?
I'm trying to assign the values from the JSON data returned when I run this code into an array that's outside the callback function. The data is multidimensional, and I have been able to use this data within the callback function. However I want to use it outside that function. i.e. the jsdata returned in the code below is to be used outside the function
Code:
$.getJSON('../fxns/status.php',function(jsdata){
//do some stuff with JSON data or pass to global variable[code]..........
I am doing a password reset form using Jquery and PHP. If I try to submit an email id it should sent and email and report back the response text as success so that the user knows email has been sent. But I am stuck with JSON submit as I have an empty array to decode at the serverside. I am using minified version of json2.js from the official json.org website
Here is the code.
Code JavaScript:
var formdata = $("#log-box").serializeArray();
formdata = JSON.stringify(formdata);
var notifymsg;
alert(formdata);
$.ajax({
type: "POST",
url: "forgot-pass.php",
contentType: 'application/json',
data: formdata,
success: function(responsedata){
var some = responsedata.split("&");
$.each(some, function(index,value){
//alert("index="+index+"value="+value);
});
},
error: function(o, s, e){
alert("Form not posted
"+e);
}});
formdata alerted gives:
[{"name":"email","value":"ravi.k@gmail.com"},{"name":"acctype","value":"loginaccount"}]
PHP forgot-pass.php
Code PHP:
print_r($_POST);
Gives
Array(
)
is it possible to access the index of the json data array in the current iteration and use it in a template?
View 2 Replies View RelatedLet's say I have the following JSON string returned from a server-side
process:
{ values: [{"name": "value1", "value": "1"},{"name": "value2",
"value": "0"},{"name": "operand", "value": "/"},{"name": "result",
"value": "NaN"},{"name": "error", "value": "Divide by 0"}] }
I then create a JSON object from it using eval() (tell me if this is
not what should be done).
My question is this...how do I determine (without going through every
single record) if there is a name=error in the values array?
Here's what I do now, it can't be optimum:
var object = eval('{ values: [{"name": "value1", "value": "1"},
{"name": "value2", "value": "0"},{"name": "operand", "value": "/"},
{"name": "result", "value": "NaN"},{"name": "error", "value": "Divide
by 0"}] }');
for (var i = 0; i < object.values.length; i++) {
if (object.values[i].name == 'error') {
//do stuff...
}
}
I thought I'd try object.values.name['error'] of course that didn't
work...
I have this array code...
and i wanna to add more items in special values , but doesn't work code...