Java 如何在转换为JSON后使用对象访问HashMap

Java 如何在转换为JSON后使用对象访问HashMap,java,javascript,json,hashmap,Java,Javascript,Json,Hashmap,我做了一个决定 HashMap<PriceBreak, ArrayList<PricingElement>> 我不知道如何访问键(PriceBreak)成员或值(ArrayList)。看起来每个密钥的名称都相同(PriceBreak),我不知道如何访问特定的密钥。 有什么建议吗?Java HashMap<PriceBreak, ArrayList<PricingElement>> m; ... Set<PriceBreak> s=m.

我做了一个决定

HashMap<PriceBreak, ArrayList<PricingElement>>
我不知道如何访问键(PriceBreak)成员或值(ArrayList)。看起来每个密钥的名称都相同(PriceBreak),我不知道如何访问特定的密钥。 有什么建议吗?

Java

HashMap<PriceBreak, ArrayList<PricingElement>> m;
...
Set<PriceBreak> s=m.keySet(); 
Collection<ArrayList<PricingElement>> c=m.values();

这不是Java代码吗?我要问的是,在对象被字符串化并发送之后,如何访问JavaScript中的对象。对不起,如果我的问题不清楚的话。你在这里放了“java”标记…?嗯,这是一个java的HashMap,经过转换,所以我认为它是相关的。好的,让我们把它作为java解决方案,你可以等待javascript解决方案。我也做了,希望答案更有用:-)看起来你的数据生成不正确。看起来整个
PriceBreak[amount=50-99,discountedPrice=n/a]orderNo:0 forDeletion:false forchange:false forAdding:false
部分实际上是属性名,数组是值(该部分可以)。请注意,在JavaScript中只能使用字符串和数字作为属性名,因此您必须修复Java代码以将每个
PriceBreak
实例序列化为更有意义的内容。或者这真的是您想要的吗?您可以使用
obj[“PriceBreak[amount=50-99,discountedPrice=n/a]orderNo:0用于删除:false用于更改:false用于添加:false”]
。也看看@Felix Kling是的,我想我在这里的逻辑失败了。Gson完全按照我的要求做了——制作键/值对。尽管在我的例子中,当我必须使用这样的长参数访问值时,它没有什么用处。我认为一个包含PriceBreak和ArrayList的新类数组更适合我。编辑:但我会先检查迭代属性是的,更改结构会更好。这些都是非常奇怪的财产名称,而且从长远来看相当混乱。此外,您无法访问那些
PriceBreak
对象的任何信息,因为它们只是JS中的字符串。
HashMap<PriceBreak, ArrayList<PricingElement>> m;
...
Set<PriceBreak> s=m.keySet(); 
Collection<ArrayList<PricingElement>> c=m.values();
// get keys
var keys = [];
for(var k in m) keys.push(k.key);

//get a value:
v=m[someKey];