[Proto-Scripty] Re: CSV to Json

2011-08-22 Thread Victor
You can invert your {'fields': [{'field':'fname', 'col':2}, {'field':'ssn', 
'col':5}]} to something like ['field0', 'field1', 'fname', 'field3', 
'field4', 'ssn'] and then zip it (Enumerable#zip) with every CSV row.

-- 
You received this message because you are subscribed to the Google Groups 
Prototype  script.aculo.us group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/prototype-scriptaculous/-/TW9sKYDkBvQJ.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.



[Proto-Scripty] Re: CSV to Json

2011-08-22 Thread Eric
Jason,

Why do you copy the return array into an other one before using it?
(and why rewriting code already available as native PHP functions?)

This should do the same than your code:
$fh = fopen($filename);
$fields = fgetcsv($fh);
while($line = fgetcsv($fh) !== false)
{
  print json_encode(array_combine($fields,$line));
}
fclose($fh);

Eric

PS: You may want to add some error handling :o)


On Aug 20, 6:03 pm, Jason jwestbr...@gmail.com wrote:
 I would use a small PHP script (assuming the first line is the field
 names)

 $fields = array();
 $data = array();
 $fh = fopen($filename);
 $line = fgetcsv($fh);
 foreach($line as $n)
 {
 $fields[] = $n;

 }

 while($line = fgetcsv($fh) !== false)
 {
 foreach($line as $key = $n)
 {
 $data[$fields[$key]][] = $n;

 }
 }

 print json_encode($data);

 seehttp://us.php.net/fgetcsvfor more examples

 On Aug 18, 11:24 pm, kstubs kst...@gmail.com wrote:







  Any tips for converting CSV to Json?  I have CSV, row deliminted \n, and
  fields delimited with typical comma.  There is a known/exisiting object type
  for each field.  Something like:

  {'fields': [{'field':'fname', 'col':2}, {'field':'ssn', 'col':5}]}

  So I have that to work from, and will populate a Json result like this:
  [{'data':{'fname':value}, {'ssn':value}},{'data':{'fname':value},
  {'ssn':value}}]

  I feel like I am doing it the long way when I:

  // split csv string by \n to new line array

  // for every item in new line split string

  // split item by , to field array

  // for every item in field array

  // create object to add to new data array

  Any ideas would help.

  Thanks,
  Karl..

-- 
You received this message because you are subscribed to the Google Groups 
Prototype  script.aculo.us group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.



[Proto-Scripty] Re: CSV to Json

2011-08-22 Thread Jason

Eric - that is smoother, I'll update my scripts to run it that way


thanks!


On Aug 22, 5:01 am, Eric lefauv...@gmail.com wrote:
 Jason,

 Why do you copy the return array into an other one before using it?
 (and why rewriting code already available as native PHP functions?)

 This should do the same than your code:
 $fh = fopen($filename);
 $fields = fgetcsv($fh);
 while($line = fgetcsv($fh) !== false)
 {
   print json_encode(array_combine($fields,$line));}

 fclose($fh);

 Eric

 PS: You may want to add some error handling :o)

 On Aug 20, 6:03 pm, Jason jwestbr...@gmail.com wrote:







  I would use a small PHP script (assuming the first line is the field
  names)

  $fields = array();
  $data = array();
  $fh = fopen($filename);
  $line = fgetcsv($fh);
  foreach($line as $n)
  {
  $fields[] = $n;

  }

  while($line = fgetcsv($fh) !== false)
  {
  foreach($line as $key = $n)
  {
  $data[$fields[$key]][] = $n;

  }
  }

  print json_encode($data);

  seehttp://us.php.net/fgetcsvformore examples

  On Aug 18, 11:24 pm, kstubs kst...@gmail.com wrote:

   Any tips for converting CSV to Json?  I have CSV, row deliminted \n, and
   fields delimited with typical comma.  There is a known/exisiting object 
   type
   for each field.  Something like:

   {'fields': [{'field':'fname', 'col':2}, {'field':'ssn', 'col':5}]}

   So I have that to work from, and will populate a Json result like this:
   [{'data':{'fname':value}, {'ssn':value}},{'data':{'fname':value},
   {'ssn':value}}]

   I feel like I am doing it the long way when I:

   // split csv string by \n to new line array

   // for every item in new line split string

   // split item by , to field array

   // for every item in field array

   // create object to add to new data array

   Any ideas would help.

   Thanks,
   Karl..

-- 
You received this message because you are subscribed to the Google Groups 
Prototype  script.aculo.us group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.



[Proto-Scripty] Re: CSV to Json

2011-08-21 Thread kstubs
Client side only.. I have something written but not sure I'm taking 
advantage of prototype added methods for arrays and enumerations. 
 Basically, I'm constructing a csv from json object iterating over it's data 
array, and appending to CSV like:  

csv+=data
csv+=','
csv+='\n'

The above is *obviously* chopped significantly and missing the smarts around 
when to add , and when to add \n..

-- 
You received this message because you are subscribed to the Google Groups 
Prototype  script.aculo.us group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/prototype-scriptaculous/-/l9Z5qbY3CXwJ.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.



[Proto-Scripty] Re: CSV to Json

2011-08-20 Thread Jason

I would use a small PHP script (assuming the first line is the field
names)

$fields = array();
$data = array();
$fh = fopen($filename);
$line = fgetcsv($fh);
foreach($line as $n)
{
$fields[] = $n;
}

while($line = fgetcsv($fh) !== false)
{
foreach($line as $key = $n)
{
$data[$fields[$key]][] = $n;
}
}

print json_encode($data);


see http://us.php.net/fgetcsv for more examples

On Aug 18, 11:24 pm, kstubs kst...@gmail.com wrote:
 Any tips for converting CSV to Json?  I have CSV, row deliminted \n, and
 fields delimited with typical comma.  There is a known/exisiting object type
 for each field.  Something like:

 {'fields': [{'field':'fname', 'col':2}, {'field':'ssn', 'col':5}]}

 So I have that to work from, and will populate a Json result like this:
 [{'data':{'fname':value}, {'ssn':value}},{'data':{'fname':value},
 {'ssn':value}}]

 I feel like I am doing it the long way when I:

 // split csv string by \n to new line array

 // for every item in new line split string

 // split item by , to field array

 // for every item in field array

 // create object to add to new data array

 Any ideas would help.

 Thanks,
 Karl..

-- 
You received this message because you are subscribed to the Google Groups 
Prototype  script.aculo.us group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.