Java 在没有外部库的情况下格式化类似JSON的字符串
如何格式化此字符串以获得“gs”值Java 在没有外部库的情况下格式化类似JSON的字符串,java,Java,如何格式化此字符串以获得“gs”值 我已经研究了许多关于堆栈溢出的类似问题,但是,大多数建议使用外部库。我不想使用外部库,因为我将其用于libgdx,而外部库只会产生不必要的复杂情况。如果您明确知道您正在查找“gs”之后的值,那么您可以简单地执行以下操作: // String input = [string in your question]; input = input.substring(input.indexOf("\"gs\"") + "\"gs\"".length()); // we
我已经研究了许多关于堆栈溢出的类似问题,但是,大多数建议使用外部库。我不想使用外部库,因为我将其用于libgdx,而外部库只会产生不必要的复杂情况。如果您明确知道您正在查找
“gs”
之后的值,那么您可以简单地执行以下操作:
// String input = [string in your question];
input = input.substring(input.indexOf("\"gs\"") + "\"gs\"".length()); // we move past the ':'
input = input.substring(input.indexOf('"') + 1); // move past the first '"' after "gs"
String gs = input.substring(0, input.indexOf('"'));
现在
gs
包含字符串a2fdee457d64cd48f399f1a9fea4a977
这看起来像是regex的作业。你是说“格式化”还是“解析”?@HotLicks我正在尝试获取这个值“a2fdee457d64cd48f399f1a9fea4a977”,并将其设置为变量。(如果情况如此糟糕,您可以很好地使用indexOf
和substring
,或者更强大一点的是,split
)您的“类似于JSON的”字符串实际上是JSON吗,或者我们可以假设没有嵌套对象吗?但是请注意,JSON允许不重要的“空白”在标记之间,因此在发送端面对更改时,上面的内容不是“健壮的”。@HotLicks您是对的。我修改了我的答案以适应这一点。
// String input = [string in your question];
input = input.substring(input.indexOf("\"gs\"") + "\"gs\"".length()); // we move past the ':'
input = input.substring(input.indexOf('"') + 1); // move past the first '"' after "gs"
String gs = input.substring(0, input.indexOf('"'));