The sentence is grammatical, but awkward.
To put it in context, here's the original paragraph, with links and footnote references removed, and your sentence emphasized:
The 2010 United States Census reported that San Jose had a population of 945,942. The population density was 5,256.2 people per square mile (2,029.4/km²). The racial makeup of San Jose was 404,437 (42.8%) White, 303,138 (32.0%) Asian (10.4% Vietnamese, 6.7% Chinese, 5.6% Filipino, 4.6% Indian, 1.2% Korean, 1.2% Japanese, 0.3% Cambodian, 0.2% Thai, 0.2% Pakistani, 0.2% Laotian), 30,242 (3.2%) African American, 8,297 (0.9%) Native American, 4,017 (0.4%) Pacific Islander, 148,749 (15.7%) from other races, and 47,062 (5.0%) from two or more races. Hispanic or Latino of any race were 313,636 persons (33.2%). Among the Hispanic population, 28.2% are Mexican, 0.7% Salvadoran, 0.5% Puerto Rican, and 0.3% Nicaraguan. Non-Hispanic Whites were 28.7% of the population in 2010, down from 60.4% in 1970.
The problem which underlies a text of this sort is that it shouldn't really be presented as text at all: the information it provides would be much more intelligible and useful in a table.
But if you're going to present it as text, it's very important to maintain a consistent syntax, providing the numbers and labels in the same format every time. The sentence you're asking about fails to do this: instead of the “#(%) Label” format which the reader has gotten used to, the author flips the label to the front.
There's a very good reason why the author does this: to mark the shift from “racial makeup” to ethnic makeup requires a new sentence. But fronting the label creates just the awkward construction that draws your attention. We're now dealing with a Census-defined label in the singular which must be complemented with a number, to which the author feels a need to attach a plural noun, persons. It would have been somewhat more graceful, and easier to follow, if the author had written something along the lines of
The ethnic makeup was ###,### (28.7%) Non-Hispanic White (down from 60.4% in 1970) and 313,636 (33.2%) Hispanic or Latino of any race; these Hispanics were 28.2% Mexican, 0.7% Salvadoran, 0.5% Puerto Rican, and 0.3% Nicaraguan.
I've de-pluralized “Non-Hispanic Whites” on the assumption that the Census label is parallel with the others. If it isn't, it should be.