my $line;
my $id;
my $label;
my $src;
my $dst;
my $val;
my $nodes = 0;
my $edges = 0;

open(IN, "netscience.net");
open(OUT, ">netscience.json");

print(OUT "{\n"); # Begin JSON

while ($line = <IN>) {
	$line =~ s/\n//;
	$line =~ s/\r//;
	
	if ($line =~ /(\d+) (\d+) ([\d\.]+)/) { # START EDGE
		if ($edges == 0) {
			print(OUT "\n"); # End last attribute
			print(OUT "\t\t}\n"); # End last node
			print(OUT "\t],\n"); # End list of nodes
			print(OUT "\t\"edges\" : [\n"); # Begin list of edges
			undef $id;
		}
		print(OUT "\n") if (defined $id); # End last attribute
		print(OUT "\t\t},\n") if (defined $id); # End previous edge

		$edges++;
		$id = "$1->$2";
		$src = $1-1;
		$dst = $2-1;
		$val = $3;
		print(OUT "\t\t{\n"); # Begin new edge
		print(OUT "\t\t\t\"src\" : $src,\n"); 
		print(OUT "\t\t\t\"dst\" : $dst,\n"); 
		print(OUT "\t\t\t\"val\" : $val"); 
		
	}
	elsif ($line =~ /(\d+) "([^"]+)"/) { # START NODE
		if ($nodes == 0) {
			print(OUT "\t\"nodes\" : [\n"); # Begin list of nodes
			undef $id;
		}
		print(OUT "\n") if (defined $id); # End last attribute
		print(OUT "\t\t},\n") if (defined $id); # End previous node

		$nodes++;
		$id = $1-1;
		$label = $2;
		print(OUT "\t\t{\n"); # Begin new node
		print(OUT "\t\t\t\"id\" : $id,\n"); 
		print(OUT "\t\t\t\"label\" : \"$label\""); 
	}
}

print(OUT "\n"); # End last attribute
print(OUT "\t\t}\n"); # End last edge
print(OUT "\t]\n"); # End list of edges

print(OUT "}\n"); # End JSON

close(OUT);
close(IN);

print("Nodes: $nodes\n");
print("Edges: $edges\n");
