【发布时间】:2016-11-27 13:39:35
【问题描述】:
对我来说,一个很大的好奇心是为什么这么多人喜欢经历创建 JSON 文件、将对象写入其中、让服务器在某处访问该文件并使用 java-json 库来读取和解析数据的麻烦当您可以选择将您发送的所有对象放入一个字符串中,该字符串通过适当的字符分隔键/值并发送服务器解析的字符串。
例如,在 JavaScript 方面:
function convertToSendableString(object) {
if (object instanceof Array){
var stringToSend = "";
for (i = 0; i < object.length; i++){
stringToSend += object[i] + "~";
}
}
if (object instanceof Object){
//Do something similar as what was done with Array but add another
//character to separate each key/value pair. ex.
//car~honda*book~dictionary*sanity~almostgone*
}
return stringToSend;
}
client.write(convertToSendableString(someObject));
然后在服务器端(在本例中为 Java):
is = new DataInputStream(socket.getInputStream());
os = new DataOutputStream(socket.getOutputStream());
in = new BufferedReader(new InputStreamReader((DataInputStream) is));
String line = "";
try {
while (in.ready()) {
char character = (char) in.read();
line = line + character;
}
} catch (IOException e) {
e.printStackTrace();
}
String[] parts = line.split("*");
...
等等……只要你足够小心,禁止在程序的其他地方使用这些字符,你为什么要把事情复杂化到现代数据传输所做的极端?
感谢您的洞察!
【问题讨论】:
-
嗯...也许创建一个对象更容易和更快,使用
JSON.stringify()对其进行字符串化比制作只有开发人员知道的“非标准”格式...我认为是有一个标准化的格式比让任何人以他们想要的任何方式格式化信息更好......其他开发人员更容易理解发生了什么。 -
网页设计的一个问题是,有太多的平台可以使用,以至于开发人员经常陷入其中一些事情他们非常了解而另一些事情不太了解的情况。在这种情况下,开发人员倾向于尽可能减少学习曲线,并最终使用他们所知道的。另一方面,诸如 JSON 之类的标准在一定程度上是为了减少开发开销。如果我可以在睡梦中做你的例子,或者花两天时间确保你的替代方案没有我不熟悉的问题,我会选择你的例子。
标签: javascript java json server client