I’m trying to think of the most efficient way to parse a file that stores names, studentids and Facebook ids. I’m trying to get the fbid value, so for this particular line it would be: 1281766051. I thought about using regex for this, but I’m a bit lost as to where to start. I thought about adding all this data to an array and chopping away at it, but it just seems inefficient.
{"name":"John Smith","studentid":"10358595","fbid":"1284556651"}
I apologise if the post is too brief. I’ll do my best to add anything that I might have missed out. Thanks.
Well, this seems to be JSON, so the right way would be
The regex solution would look like this:
But I cannot tell you off the top of my head which of these is more efficient. You would have to profile it.
UPDATE:
I performed a very basic check on execution times (nothing too reliable, I just measured 1,000,000 executions of both codes). For your particular input, the difference is rather negligible:
However, if your JSON records get larger (for example, if I add 3 fields to the beginning of the string (so that both solutions are affected)), the difference becomes quite noticeable:
Now, if I add the three fields to the end of the string, the difference becomes even larger (obviously, because
preg_matchdoes not care about anything after the match):Even so, before you apply optimizations like this, perform proper profiling of your application and make sure that this is actually a crucial bottleneck. If it is not, it’s not worth obscuring your JSON-parsing code with regex functions.