简体   繁体   English

将 JSON 转换为 GSON 到 Android

[英]Convert JSON to GSON to Android

I have the following structure in my Android project:我的 Android 项目中有以下结构:

map = new Gson().fromJson("[{\\n \\"ques\\": \\"20+20=\\",\\n \\"a\\": \\"40\\",\\n \\"b\\": \\"60\\",\\n \\"c\\": \\"80\\",\\n \\"d\\": \\"220\\",\\n \\"ans\\": \\"a\\"\\n },\\n\\n {\\n \\"ques\\": \\"80+80=\\",\\n \\"a\\": \\"60\\",\\n \\"b\\": \\"93\\",\\n \\"c\\": \\"272\\",\\n \\"d\\": \\"160\\",\\n \\"ans\\": \\"d\\"\\n },\\n\\n {\\n \\"ques\\": \\"50+50=\\",\\n \\"a\\": \\"100\\",\\n \\"b\\": \\"458\\",\\n \\"c\\": \\"200\\",\\n \\"d\\": \\"90\\",\\n \\"ans\\": \\"a\\"\\n },\\n\\n {\\n \\"ques\\": \\"25+25=\\",\\n \\"a\\": \\"78\\",\\n \\"b\\": \\"45\\",\\n \\"c\\": \\"50\\",\\n \\"d\\": \\"43\\",\\n \\"ans\\": \\"c\\"\\n },\\n\\n {\\n \\"ques\\": \\"60+90=\\",\\n \\"a\\": \\"56\\",\\n \\"b\\": \\"150\\",\\n \\"c\\": \\"180\\",\\n \\"d\\": \\"100\\",\\n \\"ans\\": \\"b\\"\\n },\\n\\n {\\n \\"ques\\": \\"75+5=\\",\\n \\"a\\": \\"60\\",\\n \\"b\\": \\"65\\",\\n \\"c\\": \\"100\\",\\n \\"d\\": \\"80\\",\\n \\"ans\\": \\"d\\"\\n },\\n\\n {\\n \\"ques\\": \\"60+70=\\",\\n \\"a\\": \\"150\\",\\n \\"b\\": \\"130\\",\\n \\"c\\": \\"609\\",\\n \\"d\\": \\"517\\",\\n \\"ans\\": \\"b\\"\\n },\\n\\n {\\n \\"ques\\": \\"50+10=\\",\\n \\"a\\": \\"60\\",\\n \\"b\\": \\"13\\",\\n \\"c\\": \\"471\\",\\n \\"d\\": \\"100\\",\\n \\"ans\\": \\"a\\"\\n },\\n map = new Gson().fromJson("[{\\n \\"ques\\": \\"20+20=\\",\\n \\"a\\": \\"40\\",\\n \\"b\\" : \\"60\\",\\n \\"c\\": \\"80\\",\\n \\"d\\": \\"220\\",\\n \\"ans\\": \\"a\\"\\n },\\n\\n {\\n \\"问题\\": \\"80+80=\\",\\n \\"a\\": \\"60\\",\\n \\"b\\": \\"93\\ ",\\n \\"c\\": \\"272\\",\\n \\"d\\": \\"160\\",\\n \\"ans\\": \\"d\\"\\n },\\n\\ n {\\n \\"问题\\": \\"50+50=\\",\\n \\"a\\": \\"100\\",\\n \\"b\\": \\"458\\",\\n \\ "c\\": \\"200\\",\\n \\"d\\": \\"90\\",\\n \\"ans\\": \\"a\\"\\n },\\n\\n {\\n \\ "ques\\": \\"25+25=\\",\\n \\"a\\": \\"78\\",\\n \\"b\\": \\"45\\",\\n \\"c\\": \\"50\\",\\n \\"d\\": \\"43\\",\\n \\"ans\\": \\"c\\"\\n },\\n\\n {\\n \\"ques\\": \\"60+90=\\",\\n \\"a\\": \\"56\\",\\n \\"b\\": \\"150\\",\\n \\"c\\": \\"180\\" ,\\n \\"d\\": \\"100\\",\\n \\"ans\\": \\"b\\"\\n },\\n\\n {\\n \\"ques\\": \\"75+5 =\\",\\n \\"a\\": \\"60\\",\\n \\"b\\": \\"65\\",\\n \\"c\\": \\"100\\",\\n \\" d\\": \\"80\\",\\n \\"ans\\": \\"d\\"\\n },\\n\\n {\\n \\"ques\\": \\"60+70=\\",\\ n \\"a\\": \\"150\\",\\n \\"b\\": \\"130\\",\\n \\"c\\": \\"609\\",\\n \\"d\\": \\ "517\\",\\n \\"ans\\": \\"b\\"\\n },\\n\\n {\\n \\"ques\\": \\"50+10=\\",\\n \\"a\\ ": \\"60\\",\\n \\"b\\": \\"13\\",\\n \\"c\\": \\"471\\",\\n \\"d\\": \\"100\\", \\n \\"ans\\": \\"a\\"\\n },\\n \\n {\\n \\"ques\\": \\"90+90=\\",\\n \\"a\\": \\"180\\",\\n \\"b\\": \\"100\\",\\n \\"c\\": \\"120\\",\\n \\"d\\": \\"145\\",\\n \\"ans\\": \\"a\\"\\n },\\n\\n {\\n \\"ques\\": \\"40+30=\\",\\n \\"a\\": \\"60\\",\\n \\"b\\": \\"50\\",\\n \\"c\\": \\"70\\",\\n \\"d\\": \\"80\\",\\n \\"ans\\": \\"c\\"\\n }\\n]", new TypeToken>>(){}.getType()); \\n {\\n \\"问题\\": \\"90+90=\\",\\n \\"a\\": \\"180\\",\\n \\"b\\": \\"100\\",\\n \\"c\\": \\"120\\",\\n \\"d\\": \\"145\\",\\n \\"ans\\": \\"a\\"\\n },\\n\\n {\\n \\"问题\\": \\"40+30=\\",\\n \\"a\\": \\"60\\",\\n \\"b\\": \\"50\\",\\n \\"c\\" : \\"70\\",\\n \\"d\\": \\"80\\",\\n \\"ans\\": \\"c\\"\\n }\\n]", new TypeToken>>(){} .getType());

But it is very difficult to edit, how do I get GSON to load with the original JSON framework?但是编辑起来非常困难,如何让 GSON 加载原始 JSON 框架?

Gson uses its own parser and json types Gson 使用自己的解析器和 json 类型

If you want to use the builtin JSONArray class, then you would pass your string to that rather than Gson, however that wouldn't fix the difficulty of editing the string.如果您想使用内置的 JSONArray 类,那么您可以将字符串传递给该类而不是 Gson,但这并不能解决编辑字符串的困难。

You should instead store it in the assets folder and read it as a file您应该将其存储在资产文件夹中并将其作为文件读取

Android Java; 安卓Java; How can I parse a local JSON file from assets folder into a ListView 如何将资产文件夹中的本地 JSON 文件解析为 ListView

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM