I'm currently working on a project where I want to control a microprocessor (Arduino) from a web page.
The microprocessor will not be connected physically to the computer.
The server side is written in NodeJs.
Since I'm new to this kind of development I would very much appreciate any input on the topic!
Without details about which arduino you plan on using and what shields you might employ to achieve the interface it is hard to make a definite statement.
I would argue that with the proper shield to provide the ethernet interface TCP would be an acceptable choice.
I am inclined to say you are going to be hard pressed to build a JSON interpreter that fits into the memory foot print of an Arudino. Most of these devices have 32K of program memory, and 1 or 2K of data memory. For embedded devices like this a concise binary protocol on the wire is far more common and easier to fit into the device's limitations.